微机原理及接口第六章作业答案.doc
文本预览下载声明
“微机系统原理与接口技术”第六章习题解答(部分)
3.统一编址和分离编址,统一编址:存储器和I/O地址空间统一分配,用相同的指令访问存储器和I/O中的内容,访问存储器和I/O时,用相同的控制信号和不同的地址信号;分离编址:存储器和I/O地址空间单独分配,用不同的指令访问存储器和I/O,访问存储器和I/O时,地址可以相同,但有不同的控制信号。
4.某微机系统有8个I/O接口芯片,每个接口芯片占用8个端口地址。若起始地址为9000H,8个接口芯片的地址连续分布,用74LS138作译码器,请画出端口译码电路图,并说明每个芯片的端口地址范围。
答:分析下表所列的地址分配情况,可知系统地址信号的译码情况为(图略):
字选:A2~A0直接与接口芯片上的地址信号线连接以寻址每个接口芯片内部的8个端口;
片选:
A5~A3接3-8译码器输入端,译码器输出端分别作为8个接口芯片的片选信号;
A15~A6经门电路译码后形成3-8译码器的片选信号;
地址信号 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 第1个I/O接口芯片 端口1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 端口2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 …… 1 0 0 1 0 0 0 0 0 0 0 0 0 …… 端口8 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 第2个I/O接口芯片 端口1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 端口2 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 …… 1 0 0 1 0 0 0 0 0 0 0 0 1 …… 端口8 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 第3个I/O接口芯片 端口1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 端口2 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 …… 1 0 0 1 0 0 0 0 0 0 0 1 0 …… 端口8 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 …… 1 0 0 1 0 0 0 0 0 0 …… …… 第8个I/O接口芯片 端口1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 端口2 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 …… 1 0 0 1 0 0 0 0 0 0 1 1 1 …… 端口8 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1
6(略)
7、中断、DMA
8. 假设一台打印机的数据输出I/O口地址为378H,状态口地址为379H,状态字节的D0位为状态位(D0=0,表示打印数据缓冲区空,CPU可以向它输出新数据;D0=1,表示数据区满)。试编写一段程序,用查询方式从内存中以BUF为首址的单元处开始,将连续1KB的数据传送给打印机,每次送1字节。
答:一种可能的程序段如下实现:
……
Lea bx, buf ; BX指向第1个待打印的数据
Mov cx, 1024 ; 一共要送1K个字节数据
Next: mov dx, 379h
In al, dx ; 读打印机状态端口
Test al, 01h
Jnz next ; 若D0位不为0,则继续查询等待
Mov dx, 378h
Mov al, [bx]
Out dx,al ; 将BX所指的数据发送到打印机
Inc bx ; BX指向下一个待打印的字节
Loop next ; CX不为0,继续送下一个字节
……
9. 请用无条件传输方式编写一个完整的输入/输出程序,将首地址为40000H的内存单元中的1K个字数据从端口Output处输出,然后从端口Input处输入2KB数据到首地址为50000H的内存单元中(端口地址的实际值可自行给定)。
答:一种可能的程序如下实现:
Data1 segment at 4000h
Buffer1 dw …… ; 已存放好1K个字数据
DatA1 ends
Data2 segment at 5000h
Buffer2 dB 2048 DUP(?) ; 预留2KB单元存放读入的数据
Data2 ends
Code segment
Assume cs:code , ds:dat
显示全部