BIOS和DOS中断大全_DOS中断_03磁盘管理功能

3、磁盘管理功能(Disk-Management Function)


接上文: 2、目录控制功能(Directory-Control Function)

INT 21H

目录

0DH —磁盘复位

2EH —设置校验标志

0EH —选择磁盘

36H —读取驱动器分配信息

19H —读取当前驱动器

54H —读取校验标志

1BH, 1CH —读取驱动器数据

 

(1)、功能0DH


功能描述:清空当前的文件缓冲区,但在MS-DOS内,暂时写入缓冲区的数据将写入磁盘
入口参数:AH=0DH
出口参数:


(2)、功能0EH


功能描述:指定当前驱动器
入口参数:

AH=0EH
DL=驱动器号(0=A,1=B,...)


出口参数:AL=系统中当前的驱动器号

例程:

   1:  assume cs:code
   2:   
   3:  data segment
   4:  data ends
   5:   
   6:  code segment
   7:  start:
   8:      mov ax, data
   9:      mov ds, ax
  10:      
  11:      mov ah, 0eh
  12:      mov dl, 3h
  13:      
  14:      int 21h
  15:      
  16:      mov ax, 4c00h
  17:      int 21h
  18:  code ends
  19:  end start

(3)、功能19H


功能描述:取当前缺省驱动器号
入口参数:AH=19H
出口参数:AL=驱动器号(0=A,1=B,...)

例程:

   1:  assume cs:code
   2:   
   3:  data segment
   4:  data ends
   5:   
   6:  code segment
   7:  start:
   8:      mov ax, data
   9:      mov ds, ax
  10:      
  11:      mov ah, 19h
  12:      int 21h
  13:      
  14:      mov ah, 02h
  15:      mov dl, al
  16:      add dl, 'A'
  17:      int 21h
  18:      mov ax, 4c00h
  19:      int 21h
  20:  code ends
  21:  end start

(4)、功能1BH和1CH


功能描述:获得驱动器的分配信息
入口参数:

AH=1BH——为缺省驱动器
AH=1CH——为任意驱动器,DL=驱动器号(0=缺省,1=A,...)


出口参数:

AL=0FFH——失败,否则,
AL=每簇的扇区数
DS:BX=ID字节的地址
CX=物理扇区的大小(字节数)
DX=驱动器的簇数


(5)、功能2EH


功能描述:设置/清除操作系统自动读取检验标志
入口参数:AH=2EH
DL=00H
AL=00H——清除该标志,01H——设置该标志
出口参数:


(6)、功能36H


功能描述:取选定驱动器的信息
入口参数:

AH=36H
DL=驱动器号(0-缺省,1=A,2=B,…)

出口参数:

若功能调用失败,AX=0FFFFH,否则,
AX=每簇的扇区数
BX=可用的簇数
CX=物理扇区的大小(字节数)
DX=驱动器中的簇数

 

(7)、功能54H


功能描述:读取校验标志
入口参数:AH=54H
出口参数:AL=当前检验标志值:00H—关检验,01H—开检验

例程:

   1:  assume cs:code
   2:   
   3:  data segment
   4:  on db 'on!$'
   5:  off db 'off!$'
   6:  data ends
   7:   
   8:  code segment
   9:  start:
  10:      mov ax, data
  11:      mov ds, ax
  12:      
  13:      mov ah, 54h
  14:      int 21h
  15:      
  16:      mov ah, 0
  17:      cmp ax, 0
  18:      jz checkoff
  19:   
  20:  checkon:
  21:      lea dx, on
  22:      jmp print
  23:  checkoff:
  24:      lea dx, off
  25:  print:
  26:      mov ah, 09h
  27:      int 21h
  28:      
  29:      mov ax, 4c00h
  30:      int 21h
  31:  code ends
  32:  end start
posted @ 2013-07-23 16:28  Ares_  阅读(333)  评论(0编辑  收藏  举报