- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术 微机原理与接口技术 第7章 BIOS 和 DOS 中断 ● 键盘 I/O ● 显示器 I/O ● 打印机 I/O ● 串行通信口I/O 子程序调用 DOS/BIOS调用 实现机制不同 调用方法: 1、将调用参数装入指定的寄存器中; 2、BIOS或DOS功能号装入AH; 3、如需子功能号,把它装入AL; 4、按中断号调用DOS或BIOS中断(INT); 5、检查或取得返回参数。 BIOS和DOS基本调用 MOV AH, 01 ;DOS功能号1:键盘输入 INT 21H ;DOS调用 MOV CHAR, AL ;返回参数: 键入字符的 ;ASCII码(在AL中) MOV DL, ’A’ ;调用参数: 输出字符 MOV AH, 02 ;DOS功能号2: 显示输出 INT 21H ;DOS调用 例1:DOS调用:键盘输入,显示输出 (1)BIOS键盘中断 ( INT 16H) 字符数字键 字符码为ASCII 码 功能键、控制键 字符码为0 对应一个扫描码 1. 键盘I/O 键盘扫描码 每一个键都有两个唯一的数值进行标志。为什么要用两个数值而不是一个数值呢?这是因为一个键可以被按下,也可以被释放。当一个键按下时,它们产生一个唯一的数值,当一个键被释放时,它也会产生一个唯一的数值,我们把这些数值都保存在一张表里面,到时候通过查表就可以知道是哪一个键被敲击,并且可以知道是它是被按下还是被释放了。这些数值在系统中被称为键盘扫描码 键盘状态字节 例2:读取键盘状态字节,并以十六进制打印出来 again: mov ah,02h int 16h mov bx,ax call binihex mov dl,0dh mov ah,02h int 21h jmp again ;该子程序对二进制和16进 制进行了转换 (2)DOS键盘中断 ( INT 21H) MOV AH, 01 ;DOS功能号:键盘输入 INT 21H ;DOS调用 MOV CHAR, AL ;返回参数:键入字符 ;的ASCII码(AL) 例3:DOS调用:从键盘输入字符 例4: 输入字符串到缓冲区STRING DATA SEGMENT MAXLEN DB 32 ACTLEN DB ? STRING DB 32 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,MAXLEN ;把MAXLEN所在地址赋值给DX;并且21h的0a号功能规定了缓冲区的长度设置、存放的内容和顺序,回车符(0DH)表示输入结束,见右上图 MOV AH,0AH ;屏幕出现光标,让用户输入字符串! INT 21H CODE ENDS END START 2、DOS显示功能调用中断 INT 21H MOV DL, ’A’ ;调用参数: 输出字符 MOV AH, 02 ; DOS功能号: 显示输出 INT 21H ; DOS调用 例5:DOS调用:显示一个字符 例6:显示字符串 作业: 用DOS的10号功能调用输入一个字符串,并用DOS的9号功能调用将这个字符串输出到屏幕上显示。 * 作业复习 * 第一次作业 存储单元地址与内容 * 第二次作业 寻址方式 * * 第三次作业 数据定义与内存分配 * * 第四次作业 8086指令 * * * * * 微机原理与接口技术 微机原理与接口技术 *
文档评论(0)