- 1、本文档共92页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[高等教育]第3章3 80x86的指令系统和寻址方式2323 位操作类指令
功能调用的步骤 通常按照如下4个步骤进行: ⑴ 在AH寄存器中设置系统功能调用号 ⑵ 在指定寄存器中设置入口参数 ⑶ 执行指令INT 21H(或ROM-BIOS的中断向量号)实现中断服务程序的功能调用 ⑷ 根据出口参数分析功能调用执行情况 输入输出类功能调用 向显示器输出字符 ⒈ 字符的输出 ⒉ 字符串的输出 从键盘输入数据 ⒊ 字符的输入 ⒋ 字符串的输入 ⒌ 按键的判断 裸机 汇编语言程序 字符输出的功能调用 DOS功能调用INT 21H 功能号:AH=02H 入口参数:DL=字符的ASCII码 功能:在显示器当前光标位置显示给定的字符,光标右移一个字符位置。如按Ctrl-Break或Ctrl-C则退出 例2.46:显示问号 ;在当前显示器光标位置显示一个问号 mov ah,02h ;设置功能号:ah←02h mov dl,? ;提供入口参数:dl←? int 21h ;DOS功能调用:显示 进行字符输出时,当输出响铃字符(07H)以及退格(08H)、回车(0DH)和换行(0AH)字符时,该功能调用可以自动识别并能进行相应处理 字符输出的功能调用 显示器功能调用INT 10H 功能号:AH=0EH 入口参数:AL=字符的ASCII码 BL=字符的颜色值(图形方式) BH=页号(字符方式) 通常使BX=0 功能:将字符按原属性在光标处显示,光标自动移到下一个字符位置 字符串输出的功能调用 DOS功能调用INT 21H 功能号:AH=09H 入口参数: DS:DX=欲显示字符串在主存中的首地址 字符串应以$(24H)结束 功能:在显示器输出指定的字符串 可以输出回车(0DH)和换行(0AH)字符产生回车和换行的作用 例2.47:显示字符串 string db Hello,Everybody !,0dh,0ah,$ ;在数据段定义要显示的字符串 ... mov ah,09h ;设置功能号:ah←09h mov dx,offset string ;提供入口参数:dx←字符串的偏移地址 int 21h ;DOS功能调用:显示 字符输入的功能调用 DOS功能调用INT 21H 功能号:AH=01H 出口参数:AL=字符的ASCII码 功能:获得按键的ASCII代码值 调用此功能时,若无键按下,则会一直等待,直到按键后才读取该键值 例2.48:判断按键 getkey: mov ah,01h ;功能号:ah←01h int 21h ;功能调用 cmp al,’Y’ ;处理出口参数al je yeskey ;是“Y” cmp al,’N’ je nokey ;是“N” jne getkey ... yeskey: ... nokey: ... 字符输入的功能调用 键盘功能调用INT 16H 功能号:AH=0 出口参数:AX=键值代码 对于标准ASCII码按键:AL=ASCII码,AH=扫描码; 对于扩展按键:AL=00H,AH=键扩展码; 对于alt+小键盘数字按键:AL=ASCII码,AH=00H 此功能类同DOS功能01H,会一直等待按键 例2.49:字符输入输出 mov ah,0 ;键盘功能调用(int 16h) int 16h ;al←按键的ASCII码 mov bx,0 ;显示功能调用(int 10h) mov ah,0eh int 10h ;显示 字符串输入的功能调用 DOS功能调用INT 21H 功能号:AH=0AH 入口参数:DS:DX=缓冲区首地址 执行该功能调用时,用户按键,最后用回车确认 本调用可执行全部标准键盘编辑命令;用户按回车键结束输入,如按Ctrl+Break或Ctrl+C则中止 关键要定义好缓冲区 缓冲区的定义 第1字节事先填入最多欲接收的字符个数(包括回车字符,可以是1~255) 第2字节将存放实际输入的字符个数(不包括回车符) 第3字节开始将存放输入的字符串 实际输入的字符数多于定义数时,多出的字符丢掉,且响铃 扩展ASCII码(如功能键等)占两个字节,第1个为0 例2.50:输入字符串 buffer db 81 ;定义缓冲区 ;第1个字节填入可能输入的最大字符数 db 0 ;存放实际输入的字符数 db 81 dup(0) ;存放输入的字符串 ... mov dx,seg buffer ;伪指令seg取得buffer的段地址 mov ds,dx ;设置数据段DS mov dx,offset buffer mov ah,0ah int 21h 按键判断的功能调用 DOS功能调用INT 21H 功能号:AH=0BH 出口参数:AL=0,当前没有按键; AL=FFH,当前已经按键。 功能:仅判断当前是否有按下的键,设置AL后退出 例2.51:按任意键
文档评论(0)