好文档 - 专业文书写作范文服务资料分享网站

第六章“输入输出及接口”习题答案

天下 分享 时间: 加入收藏 我要投稿 点赞

名师整理 优秀资源

第六章 输入输出及接口

〔习题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接口电路,编程使发光二极管循环发光。具体要求是:单独按下开关K0,发光二极管以L0、L1、L2、……L7顺序依次点亮,每个维持200ms,并不断重复,直到有其他按键操作;单独按下开关K1,发光二极管以L7、L6、L5、……L0顺序依次点亮,每个也维持200ms,并不断重复,直到有其他按键操作;其他开关组合均不发光,单独按下开关K7,则退出控制程序。延时200ms可以直接调用子程序DELAY实现。 〔解答〕

again: next1: next2:

mov cx,8 mov dx,6000h mov al,0ffh out dx,al cmp al,7fh jz done cmp al,0feh jz next1 cmp al,0fdh jz next2 jmp again mov cx,8 mov al,1 call delay shl al,1 loop next11 jmp again1

;从K0开始 ;某个LED电亮 ;延时200ms ;rol al,1 ;全不亮

;D7~D0=0111111B ? ;单独按下K7,退出 ;D7~D0=11111110B ? ;单独按下K0,转移到next1 ;D7~D0=11111101B ? ;单独按下K1,转移到next2 ;其它情况不点亮

again1: in al,dx

next11: out dx,al

名师整理 优秀资源

done:

mov al,80h call delay shr al,1 loop next21 jmp again1 mov al,0ffh out dx,al

;从K7开始 ;某个LED电亮 ;延时200ms ;ror al,1

next21: out dx,al

;全不亮

〔习题6.5〕

有一个查询输入接口电路类似图6-9,但其数据端口为8F40H、状态端口为8F42H。从状态端口最低位可以获知输入设备是否准备好一个字节的数据:D0=1表示准备好,D0=0说明没准备好。不考虑查询超时,编程从输入设备读取100个字节保存到INBUF缓冲区。 〔解答〕

again:

mov bx,offset inbuf mov cx,100 mov dx,8f42h

;查询一次

test al,01h jz status mov dx,08f40h in al,dx mov [bx],al inc bx loop again

;循环,输入100个字节 ;输入一个字节

status: in al,dx

〔习题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 loop again 〔习题6.6〕

;循环,输入100个字节

有一个查询输出接口电路类似图6-10,但其数据端口和状态端口均为8000H,并从状态端口的D6位获知输出设备是否能够接收一个字节的数据:D6=1表示可以接收、D6=0说明不能接收。不考虑查询超时,编程将存放于缓冲区OUTBUF处的字符串(以0为结束标志)传送给输出设备。 〔解答〕

again: done:

mov bx,offset outbuf mov dx,8000h mov ah,[bx] cmp ah,0 jz done

;查询一次

test al,40h jnz status mov al,ah out dx,al inc bx jmp again ……

;循环 ;输出一个字节

status: in al,dx

〔习题6.6〕(第二版)

某字符输出设备,其数据口和状态口的地址均为80H。在读取状态时,当标志位D7=0时,表明该设备闲,可以接收一个字符,请编写利用查询方式进行数据传送的程序段。要求将存放于符号地址ADDR处的一串字符(以$为结束标志)输出给该设备。注意在程序中添加注释。 〔解答〕

mov bx,offset addr again: mov ah,[bx] cmp ah,’$’ jz done

status: in al,80h ;查询一次

test al,80h jnz status mov al,ah

out 80h,al;输出一个字节 inc bx jmp again ;循环

done: ……

〔习题6.7〕

结合中断传送的工作过程,简述有关概念:中断请求、中断响应、中断关闭、断点保护、

名师整理 优秀资源

中断源识别、现场保护、现场恢复、中断开放、中断返回、以及中断优先权和中断嵌套。 〔解答〕参看教程P147-150。

中断源识别:处理器明确此次中断的具体来源,以便转向为其服务的程序中。 中断嵌套:当一个中断服务时处理器又响应新的中断请求就形成中断嵌套。

〔习题6.7〕(第二版)

以可屏蔽中断为例,说明一次完整的中断过程主要包括哪些环节?8088响应可屏蔽中断请求,需要先满足哪些前提条件? 〔解答〕

习题6.7解答:参考教材第6.4.2节(第165页) 〔习题6.10〕

查询、中断和DMA传送是微机中常用的外设数据交换方式,请说明各自的特点。 〔解答〕参看教程P143-152及课件。

〔习题6.10〕(第二版)

DMA的意思是?????,主要用于高速外设和内存间的数据传送。进行DMA传送的一般过程是:外设先向DMA控制器提出?????,DMA控制器通过?????信号有效向CPU提出总线请求,CPU回以?????信号有效表示响应。此时CPU的三态信号线将输出?????状态,即将它们交由?????进行控制,完成外设和内存间的直接数据传送。 〔解答〕

?DMA的意思是 直接存储器存取 ,主要用于高速外设和内存间的数据传送。进行DMA传送的一般过程是:外设先向DMA控制器提出 DMA请求 ,DMA控制器通过 总线请求HOLD 信号有效向CPU提出总线请求,CPU回以 总线响应HLDA 信号有效表示响应。此时CPU的三态信号线将输出 高阻 状态,即将它们交由 DMAC(DMA控制器) 进行控制,完成外设和内存间的直接传送。

第六章“输入输出及接口”习题答案

名师整理优秀资源第六章输入输出及接口〔习题6.2〕I/O端口与存储器地址常有__????___?和__????___?两种编排方式,8088/8086处理器支持后者,设计有专门的I/O指令。其中指令IN是将数据从__????___?传输到__????___?,执行该指令时8088/8086处理器引脚产生__????___?总线周期。指
推荐度:
点击下载文档文档为doc格式
0rgi76kzbu6gjog0oh073pit886azp004tj
领取福利

微信扫码领取福利

微信扫码分享