- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 1
第六章 输入输出及接口
〔习题 6.2〕
I/O 端口与存储器地址常有 ???????和 ???????两种编排方式,8088/8086 处理器支持后者,设计有专门的 I/O 指令。其中指令 IN 是将数据从 ???????传输到 ???????, 执行该指令时 8088/8086 处理器引脚产生 ???????总线周期。指令“OUT DX, AL ”的目的操作数是 ???????寻址方式,源操作数是 ????????寻址方式。
〔解答〕
(I/O 端口与存储器地址)统一编址
(I/O 端口与存储器地址)独立编址外设
处理器
I/O 读
(I/O 端口的DX)寄存器间接寄存器
〔习题 6.4〕
基于教程 P142 图 6-7 接口电路,编程使发光二极管循环发光。具体要求是:单独按下
开关 K ,发光二极管以L 、L 、L 、……L
顺序依次点亮,每个维持200ms,并不断重复,
0 0 1 2 7
直到有其他按键操作;单独按下开关K ,发光二极管以L 、L 、L 、……L 顺序依次点亮,
1 7 6 5 0
7每个也维持 200ms,并不断重复,直到有其他按键操作;其他开关组合均不发光,单独按下开关 K ,则退出控制程序。延时 200ms 可以直接调用子程序DELAY 实现。
7
〔解答〕
again:
mov dx,6000h mov al,0ffh out dx,al
;全不亮
again1:
in al,dx
cmp al,7fh
;D7~D0=0111111B ?
jz done
;单独按下 K7,退出
cmp al,0feh
;D7~D0 ?
jz next1
;单独按下 K0,转移到 next1
cmp al,0fdh
;D7~D0 ?
jz next2
;单独按下 K1,转移到 next2
jmp again
;其它情况不点亮
next1:
mov cx,8
mov al,1
;从 K0 开始
next11:
out dx,al
;某个 LED 电亮
call delay
;延时 200ms
shl al,1
;rol al,1
loop next11
next2:
jmp again1
mov cx,8
next21:
mov al,80h
out dx,al call delay shr al,1 loop next21 jmp again1
;从 K7 开始
;某个 LED 电亮
;延时 200ms
;ror al,1
done:
mov al,0ffh out dx,al
;全不亮
〔习题 6.5〕
有一个查询输入接口电路类似图 6-9,但其数据端口为 8F40H、状态端口为 8F42H。从
0状态端口最低位可以获知输入设备是否准备好一个字节的数据:D0=1 表示准备好,D =0 说明没准备好。不考虑查询超时,编程从输入设备读取100 个字节保存到 INBUF 缓冲区。
0
〔解答〕
again:
mov bx,offset inbuf mov cx,100
mov dx,8f42h
status: in al,dx
test al,01h jz status
mov dx,08f40h in al,dx
mov [bx],al inc bx
;查询一次
;输入一个字节
loop again ;循环,输入 100 个字节
〔习题 6.5〕(第二版)
请描述采用查询方式进行 CPU 与外设间传送数据的过程。如果有一个输入设备,其数据口地址为 FFE0H,状态口地址为 FFE2H,当状态标志 D0=1 时,表明一个字节的输入数据就绪,请编写利用查询方式进行数据传送的程序段。要求从该设备读取 100 个字节并写到从 2000H:2000H 开始的内存中。注意在程序中添加注释。
〔解答〕
通过读取状态寄存器的标志位来检查外设是否就绪。若不就绪就继续查询,即程序不断循环;直至就绪。然后,进行下一步的传送工作。
mov bx,2000h
mov ds,bx mov cx,100
again: mov dx,0ffe2h status: in al,dx ;查询一次
test al,01h jz status
mov dx,0ffe0h
in al,dx ;输入一个字节
mov [bx],al inc bx
〔习题 6.6〕
loop again
;循环,输入 100 个字节
6 6有一个查询输出接口电路类似图 6-10,但其数据端口和状态端口均为 8000H,并从状态端口的 D6 位获知输出设备是否能够接收一个字节的数据:D =1 表示可以接收、D =0 说明不能接收。不考虑查询超时,编程将存放于缓冲区OUTBU
原创力文档


文档评论(0)