汇编程序中int 21H 的功能是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编程序中int 21H 的功能是啥?相关的知识,希望对你有一定的参考价值。

int
21是DOS功能调用,调用功能号放在AH中,使用格式如下:
MOV
AH,Fn
INT
21
功能号对应功能如下:
00
程序终止(同INT
20H)
CS=程序段前缀
01
键盘输入并回显
AL=输入字符
02
显示输出
DL=输出字符
03
异步通迅输入
AL=输入数据
04
异步通迅输出
DL=输出数据
05
打印机输出
DL=输出字符
06
直接控制台I/O
DL=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
目录中未找到文件
等等,不再列举,可以百度一下,文库里面有。
参考技术A int
21h包含了dos操作系统提供给用户的各种功能调用。其中最常用的就是4ch号功能,就是让程序结束执行。另外还有02号功能,显示字符,08号功能,读取键盘等等
参考技术B 汇编中用ret指令返回,不用“mov
ax,4cooh
int
21h”
int
21h是dos中断,它是dos操作系统的api,可以用来从正在执行的程序中退回到dos命令提示符状态。
int
21h代表着call一段代码,真正用来返回dos不是你做的。是dos自己做的。
附:
中断是中断向量表中的一个函数指针。
中断向量表是系统加载后默认加载到固定内存地址的一个数据结构。
int指令在实模式下就是从中断向量表中取出参数*4位置的函数指针然后执行那个函数。

汇编语言中断指令

中断指令为INT指令,格式为INT 中断向量号,比较常用的中断向量号是21H,完整的中断指令为INT 21H

INT 21H的作用是功能中断,即通知CPU要实现某种功能,因此需要配合功能号使用,功能号保存在AH寄存器中。

例子1:

MOV AH,4CH
INT 21H

解读:AH存放4CH功能号,表示返回DOS,INT 21H向CPU发送此功能中断,返回DOS

例子2:

mov DL,31H
mov AH,02H
int 21H

解读:DL寄存器显示要在屏幕显示的内容,02H功能号的作用是在屏幕显示(目前执行此段代码没有在屏幕显示任何内容@@)

 

以上是关于汇编程序中int 21H 的功能是啥?的主要内容,如果未能解决你的问题,请参考以下文章

汇编里 mov ah,1 int 21h是啥意思

汇编中INT 21H是啥意思?

汇编语言中 LEA DX,S MOV AH,9 INT 21H具体意思是啥,请大师指教。

汇编语言中 LEA DX,S MOV AH,9 INT 21H具体意思是啥,请大师指教。

int $0x80是啥意思(汇编语言)

汇编的中断指令INT21H有啥用啊?