电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

汇编常用的INT 21H系统调用VIP免费

汇编常用的INT 21H系统调用_第1页
1/5
汇编常用的INT 21H系统调用_第2页
2/5
汇编常用的INT 21H系统调用_第3页
3/5
汇编常用的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,程序转入相应的服务子程序,若按下其他键则会继续等待。代码:1.KEY:MOVAH,12.INT21H;系统等待输入一个字符3.CMPAL,'1'4.JEONE;如果输入字符为1则跳到标识符ONE处执行5.CMPAL,'2'6.JETWO;如上解析7.CMPAL,'3'8.JETHREE9.JMPKEY;如果不是1、2、3则继续输入字符10.ONE:......11.TWO:......12.THREE:......3、输出显示一个字符(AH=2)功能:输出DL寄存器中的字符到显示器。入口参数:被输出显示的字符或者字符ASCII码送到DL寄存器中调用方法MOVDL,字符码MOVAH,2INT21H执行完上面的调用后,显示器显示出DL中的字符。<例如>:MOVDL,'6'(也可以写成6的ASCII码36H,既:MOVDL,36H)MOVAH,2INT21H调用结果在屏幕上光标位置处显示6。4、输出一个字符串(AH=9)功能:输出显示一个以"$"字符结尾的字符串到显示器。入口参数:DX=字符串偏移地址;DS=字符串的段地址调用方法MOVAX,字符串所在的段地址MOVDS,AXMOVDX,字符串的首址偏移地址MOVAH,9INT21H执行上面调用,输出以DS:DX为首地址,"$"为结尾的字符串到显示器中。若要在显示字符串光标自动回车换行,则在"$"字符前面加上0DH(回车),0AH(换行)字符。<例子>:在屏幕上显示“HOWDOYOUDO?”字符串。并且光标回车换行。代码:1.DATASEGMENT2.STR1DB'HOWDUYOUDO?',0DH,0AH,'$'3.DATAENDS4.5.CODESEGMENT6.ASSUMECS:CODE,DS:DATA7.START:8.MOVAX,DATA9.MOVDS,AX10.MOVDX,OFFSETSTR1;字符串首偏移地址放到DX中11.MOVAH,912.NT21H;输出字符串13.14.MOVAH,4CH15.INT21H16.CODEENDS17.ENDSTART5、从键盘输入一个字符串到缓冲区(AH=0AH)功能:从键盘输入一串ASCII码字符到缓冲区,输入结束为缓冲区的个数或者“回车”字符。入口参数:DX=缓冲区首偏移地址;DS=缓冲区段地址调用方法MOVAX,缓冲区的首址的段地址MOVDS,AXMOVDX,缓冲区的首址的偏移地址MOVAH,0AHINT21H执行完上面调用,将从键盘接受字符串送到内存的输入缓冲区(由DS:DX指定缓冲区),要求预先定义一个缓冲区,缓冲区的第一个字节指定容纳的最大字符个数,由用户给出;第二个字节存放实际的最大字符个数,由系统最后添入;从第三个字节开始存放从键盘接受的字符,直到ENTER键结束。<例子>:1.DATASEGMENT2.BUFDB20,;存放最大字符个数20个3.DB?,;存放实际输入字符个数4.DB20DUP(?);存放输入字符5.DATAENDS6.CODESEGMENT7.ASSUMECS:CODE,DS:DATA8.START:9.MOVAX,DATA;缓冲区所在段基址10.MOVDS,AX11.LEADX,BUF;缓冲区首址偏移地址12.MOVAH,0AH13.INT21H14.15.MOVAH4CH16.INT21H17.CODEENDS18.ENDSTART

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

汇编常用的INT 21H系统调用

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部