8086中断之INT21H.docxVIP

  • 32
  • 0
  • 约3.5千字
  • 约 6页
  • 2017-05-27 发布于湖北
  • 举报
8086中断之INT21H

很多初学汇编语言的同学可能会对INT 21H这条指令感到困惑,不知道是什么意思,下面就以一段简单的程序为大家讲解:例如:需要键盘输入,并且回显。AH的值需要查表取得,表在下面指令:MOV AH,01?????INT 21H通过这样两条指令,输入的字符就会被存储在AL中。?表:DOS系统功能调INT 21HAH功能调用参数返回参数00程序终止(同INT 20H)CS=程序段前缀 01键盘输入并回显 AL=输入字符02显示输出DL=输出字符 03异步通迅输入 AL=输入数据04异步通迅输出DL=输出数据 05打印机输出DL=输出字符 06直接控制台I/ODL=FF(输入)DL=字符(输出)AL=输入字符07键盘输入(无回显) AL=输入字符08键盘输入(无回显)检测Ctrl-Break AL=输入字符09显示字符串DS:DX=串地址$结束字符串 0A键盘输入到缓冲区DS:DX=缓冲区首地址(DS:DX)=缓冲区最大字符数(DS:DX+1)=实际输入的字符数0B检验键盘状态 AL=00 有输入AL=FF 无输入0C清除输入缓冲区并请求指定的输入功能AL=输入功能号(1,6,7,8,A) 0D磁盘复位 清除文件缓冲区0E指定当前缺省的磁盘驱动器DL=驱动器号 0=A,1=B,...AL=驱动器数0F打开文件DS:DX=FCB首地址AL=00 文件找到AL=FF 文件未找到10关闭文件DS:DX=FCB首地址AL=00 目录修改成功AL=FF 目录中未找到文件11查找第一个目录项DS:DX=FCB首地址AL=00 找到AL=FF 未找到12查找下一个目录项DS:DX=FCB首地址(文件中带有*或?)AL=00 找到AL=FF 未找到13删除文件DS:DX=FCB首地址AL=00 删除成功AL=FF 未找到14顺序读DS:DX=FCB首地址AL=00 读成功? =01 文件结束,记录中无数据? =02 DTA空间不够? =03 文件结束,记录不完整15顺序写DS:DX=FCB首地址AL=00 写成功? =01 盘满? =02 DTA空间不够16建文件DS:DX=FCB首地址AL=00 建立成功? =FF 无磁盘空间17文件改名DS:DX=FCB首地址(DS:DX+1)=旧文件名(DS:DX+17)=新文件名AL=00 成功AL=FF 未成功19取当前缺省磁盘驱动器 AL=缺省的驱动器号 0=A,1=B,2=C,...1A置DTA地址DS:DX=DTA地址 1B取缺省驱动器FAT信息 AL=每簇的扇区数DS:BX=FAT标识字节CX=物理扇区大小DX=缺省驱动器的簇数1C取任一驱动器FAT信息DL=驱动器号同上21随机读DS:DX=FCB首地址AL=00 读成功? =01 文件结束? =02 缓冲区溢出? =03 缓冲区不满22随机写DS:DX=FCB首地址AL=00 写成功? =01 盘满? =02 缓冲区溢出23测定文件大小DS:DX=FCB首地址AL=00 成功(文件长度填入FCB)AL=FF 未找到24设置随机记录号DS:DX=FCB首地址 25设置中断向量DS:DX=中断向量AL=中断类型号 26建立程序段前缀DX=新的程序段前缀 27随机分块读DS:DX=FCB首地址CX=记录数AL=00 读成功? =01 文件结束? =02 缓冲区太小,传输结束? =03 缓冲区不满28随机分块写DS:DX=FCB首地址CX=记录数AL=00 写成功? =01 盘满? =02 缓冲区溢出29分析文件名ES:DI=FCB首地址DS:SI=ASCIIZ串AL=控制分析标志AL=00 标准文件? =01 多义文件? =02 非法盘符2A取日期 CX=年DH:DL=月:日(二进制)2B设置日期CX:DH:DL=年:月:日AL=00 成功? =FF 无效2C取时间 CH:CL=时:分DH:DL=秒:1/100秒2D设置时间CH:CL=时:分DH:DL=秒:1/100秒AL=00 成功? =FF 无效2E置磁盘自动读写标志AL=00 关闭标志AL=01 打开标志 2F取磁盘缓冲区的首址 ES:BX=缓冲区首址30取DOS版本号 AH=发行号,AL=版本31结束并驻留AL=返回码DX=驻留区大小 33Ctrl-Break检测AL=00 取状态? =01 置状态(DL)DL=00 关闭检测? =01 打开检测DL=00 关闭Ctrl-Break检测? =01 打开Ctrl-Break检测35取中断向量AL=中断类型ES:BX=中断向量36取空闲磁盘空间DL=驱动器号?0=缺省,1=A,2=B,...成功:AX=每簇扇区数???? BX=有效簇数???? CX=每扇区字节数???? DX=总簇数失败:AX=FFFF38置/取国家信息DS:DX=信息区首地址BX

文档评论(0)

1亿VIP精品文档

相关文档