- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* SAL/SHL 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 AL=20H CF=0 OF=1 MOV AL,90H SHL AL,1 * SHR 例: MOV AH,90H SHR AH,1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 AH=48H CF=0 * SHR 例: MOV AH,10H MOV CL,4 SHR AH,CL 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 * 四、CMOS RAM中存储的时间信息 在CMOS的0~DH的14个单元中存 放着当前的时间信息 每个单元中的数据都以BCD码方式存放 0 秒 1 2 分 3 4 时 5 6 7 日 8 月 9 年 A B C D 例:2单元中的数据 则:表示当前时间是 分 39 编程:在屏幕中间显示当前的月份 * 编程:在屏幕中间显示当前的月份 从CMOS 8号单元读出当前月份的BCD码 MOV AL,8 OUT 70H,AL IN AL,71H 将取到的用BCD码表示的数据以十进制形式显示到屏幕上。 6 7 日 14H 8 月 9 年 A 1、将BCD码转化为十进制数 AL=14H→14 ASCII码=31H、34H MOV AH,AL ;AH=AL=14H MOV CL,4 SHR AH,CL ;AH=1H AND AL,0FH ;AL=4H 2、显示(ah)+30h和(al)+30h对应的ASCII码字符 * assume cs:code code segment start: mov al,8 out 70h,al in al,71h mov ah,al mov cl,4 shr ah,cl and al,0fh add ah,30h add al,30h mov bx,0b800h mov es,bx mov byte ptr es:[160*12+40*2],ah mov byte ptr es:[160*12+40*2+2],al mov ax,4c00h int 21h * 实验14 访问CMOS RAM 编程: 以“年/月/日 时:分:秒”的格式,显示当 前的日期、时间 开始 读写CMOS端口 BCD码转十进制 显示输出 结束 mov al,单元号(9,8,7,4,2,0) Out 70h,al In al,71h Mov ah,al ; mov cl,4 ;and al,0f0h Add ah,30h; add al,30h 00/00/00 00:00:00 db ‘00/00/00 00:00:00’ db 9,8,7,4,2,0 * 第15章 外 中 断 CPU除了有运算能力外,还要有I/O(对外部设备控制或输入/输出)能力。 两个问题: 1、CPU如何知道外设有无输入? 2、CPU怎样得到外设的输入? * 一、接口芯片和端口 CPU 显示器 扬声器 打印机 鼠标 键盘 扫描仪 显卡 适配 器芯 片 端 口 * 二、外中断信息 1、 CPU如何知道外设的输入? 外中断:来自于CPU外部的中断信息引发的中断过程称为外中断。 外部中断可分为两类: 可屏蔽中断:CPU可以不响应的外中断。当IF=1时给予相应,当IF=0时不响应。 IF置1指令: sti IF置0指令: cli 不可屏蔽中断:CPU必须予以相应的中断。 8086CPU中,不可屏蔽中断的中断类型码固定为2,所以中断过程中,不需要取中断类型码。 可屏蔽中断引发的中断过程: 取中断类型码 n;(中断类型码来自CPU外部) 标志寄存器入栈,IF=0,TF=0 CS、IP入栈; (IP)=(n*4) ,(CS)=(n*4+2) 不可屏蔽中断(2#)引发的中断过程: 标志寄存器入栈,IF=0,TF=0; CS、IP入栈; (IP)=(8),(CS)=(0AH) * 三、PC机键盘的处理过程 1、键盘输入 5FH 62H 61H 60H 8048 按下一个键:产生一个字节的扫描码称为通码。 松开按下的键:产生一个字节的扫描码称为断码。 (通码的最高位为0,断码的最高位为1;所以 断码=通码+80H) * 2、引发9号中断 5FH 62H
文档评论(0)