汇编常用的INT21H系统调用系统功能调用——由DOS提供的一组实现特殊功能的子程序供程序员在编写自己的程序时调用,以减轻编程的工作量
分两种,DOS系统功能调用和BIOS终端调用
汇编语言中DOS系统功能调用有很多,涉及屏幕显示、文件管理、I/O管理等等,每个子程序都有一个功能号,所有的功能调用的格式都是一致的
调用的步骤大致如下:(1)系统功能号送到寄存器AH中;(2)入口参数送到指定的寄存器中;(3)用INT21H指令执行功能调用;(4)根据出口参数分析功能调用执行情况
下面归纳5个在汇编中常用的INT21H系统功能调用
AH功能入口参数出口参数4CH返回DOS无无1键盘输入一个字符到AL中无AL=字符2输出DL寄存器的字符到显示器DL(存放一个字符)无9输出一个以“$”结尾的字符串到显示器DS:字符串所在的段地址DX:字符串首地址无0AH从键盘输入一个字符串到指定缓冲区DS:缓冲区所在的段地址DX:缓冲区首地址缓冲区相应位置下面分别详细分析5种功能调用:1、带返回码的结束(AH=4CH)功能:返回DOS入口参数:无调用方法MOVAH,4CHINT21H通过4CH功能调用能够结束当前正在执行的程序,返回DOS系统,一般用于汇编程序的结束位置
2、键盘输入一个字符(AH=1)功能:从键盘输入一个字符到AL中,AL中为该字符的ASCII码
入口参数:无调用方法MOVAH,1INT21H执行完上面的系统调用后,出现提示输入光标,从键盘输入一个字符并保存其ASIIC码到AL寄存器中
:交互式程序中用户按下数字键1,2,3,程序转入相应的服务子程序,若按下其他键则会继续等待
KEY:MOVAH,12
INT21H;系统等待输入一个字符3
CMPAL,'1'4
JEONE;如果输入字符为1则跳到标识符ONE处执行5
CMPAL,'2'6
JETWO;如上解析7