接口技术书后习题答案

更新时间:2023-12-10 11:57:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

钱晓捷 接口技术 第3版 部分习题解答

1.11 (1)174.66 D = 10101110.10101000 B = 0AE.A8 H (0AE.A9H / 0AE.A8F5C2H) (2)100011101011.01011 B = 8EB.58 H = 2283.34375 D (3)F18A6.6 H = 11110001100010100110.0110 B = 989350.375 D

1.12解:八位机器数原码、反码、 补码、 移码 +37 00100101 00100101 00100101 10100101 25H 25H 25H 0A5H -37 10100101 11011010 11011011 01011011 0A5H 0DAH 0DBH 5BH

1.13解:补码机器数扩充为16位和32位形式 +37 0025 H 00000025 H -37 FFDB H FFFFFFDB H

1.14 解:46H作为无符号数 = 70 D 46H作为补码 = +70 D 46H作为BCD码 = 46 D 46H作为ASCII码 = ?F?

1.16解:英文字母 D和d的ASCII码为44H和64H; 回车CR为0D H、换行LF为0A H; 数码0、空格SP、空操作NUL的ASCII码分别为30H、20H、00H。

2.5题参考p.30 逻辑地址形式为 段地址:偏移地址 物理地址 = 段地址*16+段内偏移地址 1MB空间最多可以分成64K个逻辑段,因为段地址的起始必须是16的倍数,220/24=216=64K个。

物理地址为:(1) 0FFFF0H(2)00417H(3)24500H(4)0BC777H

2.8 已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]~[20103H]依次存放12H、34H、56H、78H,[21200H]~[21203H]依次存放2AH、4CH、B7H、65H,说明下列指令执行完后AX寄存器的内容以及源操作数的寻址方式。

(1)mov ax, 1200h 答:ax=1200h 立即寻址方式 (2)mov ax, bx

答:ax=0100h

寄存器寻址方式

(3)mov ax, [1200h] 答:ax=[21200h]=4C2AH 直接寻址方式 (4)mov ax, [bx]

答:ax=[20100h]=3412H

寄存器间接寻址方式

(5)mov ax, [bx+1100h] (6)mov ax, [bx+si]

答:ax=[21200h]=4C2AH 相对寻址方式

基址变址寻址方式

答:ax=[20102h]=7856H

(7)mov ax, [bx][si+1100h]

答:ax=[21202h]=65B7H

相对基址变址寻址方式

2.9 指出下列指令的错误原因: mov cx, dl ;源操作数长度与目的操作数不一致 mov ip, ax ;ip指令指针不能人为改变,由转移指令或子程 序调用来改变 mov es, 1234h ;立即数不能直接送段寄存器 mov es, ds ;段寄存器之间不能直接传递 mov al, 300 ;源操作数长度超过al寄存器 mov [sp], ax ;间接寻址可使用bx或bp,堆栈操作应使用专用 指令, mov ax, bx+di ;源操作数格式错,应该是 [bx+di] mov 20h, ah ;目的操作数不可以是立即数

2.13解:运算公式为 [V-(X*Y+Z-540)]/X 结果商存放在ax中,余数在dx中。

2.16解:求有效地址 (1)EA = 1256H (2)EA = 32F7H

2.19解:求首地址为array的20个字的数组的元素之和,结果存放于地址为total的字单元中。

4.4 ISA总线的时钟频率是8 MHz,每2个时钟可以传送一个16位数据,计算其总线带宽。

解:2T传一次16位的传输速率,即频率减半:fd = (16/8) * 8M /2 = 8 MB/s 或 fd = 16*8M/2 = 64 Mb/s

4.5 答: 8088的某些输出线有三种状态:高电平、低电平、悬空(高阻态),称为三态能力。在高阻状态,CPU放弃其了对该引脚的控制权,由连接它的设备接管。 具有三态能力的引脚有:AD7~AD0,A15~A8,A19/S6~A16/S3,ALE,IO/M*,WR*,RD*,DEN*,DT/R*。

4.7答: 74LS373 的G为电平锁存引脚,控制选通且转为无效时锁存数据。

OE* 输出允许引脚,信号来自ALE。

4.8 答:

数据收发器74LS245 是8位双向缓冲器,G*控制端为低电平有效,可传输数据;DIR控制导通方向:DIR=1,A→B;DIR=0,A←B。

4.9 执行一条指令所需要地时间被称为指令周期,而总线周期指的是完成一次特定总线操作所需的时间。 8088基本的总线周期由 4个T组成。如果CLK引脚接5MHz的时钟信号,那么每个T状态的持续时间为200ns。

4.11解答:

当8088进行读写存储器或I/O接口时,如果存储器或I/O接口无法满足CPU的读写时序(来不及提供或读取数据时),需要CPU插入等待状态TW。(在T3前沿检测Ready信号,若无效则插入TW 。) 具体在读写总线周期的T3和T4之间插入TW。

4.13 8088系统最小组态下,对指令ADD [2000H],AX (长度3B)。 答:取该指令时需要3个总线周期,均为存储器读周期。

执行该指令时需要4个总线周期,2个为存储器读总线周期(读出字操作数参与运算),2个为存储器写总线周期(保存16位运算结果)。

=========================

5.1 在半导体存储器中,RAM指的是 随机存取存储器 ,它可读可写,但断电后信息一般会 丢失 ;而ROM指的是 只读存储器 ,正常工作时只能从中 读取 信息,但断电后信息 不会丢失 。以EPROM芯片2764为例,其存储容量为8K×8位,共有 8 条数据线和 13 条地址线。用它组成64KB的ROM存储区共需 8 片2764芯片。

5.7 什么是存储芯片的位扩充和地址扩充?采用静态RAM的芯片2114(1K*4位)或动态RAM的芯片4116(16K*1位)来组成32KB的RAM存储区,请问各需要多少芯片?在位方向和地址方向各需要进行什么样的扩充? 解答:(参见p.140) 使用多个芯片来扩充存储数据位的宽度,称为位扩充。 采用多个芯片在地址方向上进行扩充,称为地址扩充或字扩充。 用SRAM 2114组成32KBRAM存储区:2片为一组,得1KB,所以组成32KB就要32组,共需要64片SRAM 2114。 用DRAM 4116组成32KBRAM存储区:8片为一组,得16KB,所以组成32KB只要2组,共需要16片DRAM 4116。

A9~A0 片选1 CE A9~A0 A9~A0 2114 片选32 CE A9~A0 2114 CE A9~A0 I/O4~I/O1 2114 I/O4~I/O (1)1D7~D4 D3~D0 D7~D4 CE A9~A0 I/O4~I/O1 2114 I/O4~I/O(11) D3~D0

5.8 存储芯片为什么要设置片选信号?它与系统地址总线有哪些连接方式?采用何种连接方式可避免地址重复?采用哪些连接方式可节省用于译码的硬件? 解答:

片选信号说明该存储器芯片是否被选中正常工作,设置它可以比较方便地实现多个存储器芯片组成大容量的存储空间。

存储器片选信号通常与CPU地址总线的高位地址线相关联,可以采用“全译码”、“部分译码”、“线选译码”方式。

采用全译码方式可以避免地址重复。

采用部分或线选译码可以节省译码硬件。

5.9 在一个针对存储器的译码系统中,如果有4个地址线未参与译码,那

么每个存储单元会同时拥有几个地址?

解答: 理论上每个存储单元会同时拥有16个地址。

5.10 解答:p.144图5.33中4个存储芯片的可用地址范围: 6264(1) 6264(2) 2732(1) 2732(2) 00000 ~ 01FFFH 02000 ~ 03FFFH 04000 ~ 04FFFH 05000 ~ 05FFFH 40000 ~ 41FFFH 42000 ~ 43FFFH 44000 ~ 44FFFH 45000 ~ 45FFFH 80000 ~ 81FFFH 82000 ~ 83FFFH 84000 ~ 84FFFH 85000 ~ 85FFFH C0000~C1FFFH C2000~C3FFFH C4000 ~C4FFFH C5000 ~C5FFFH 重复地址由于A19A18的不定性,每片各有4段范围。

5.11采用全译码方式和6264芯片( SRAM,容量8K×8位),在内存40000H~43FFFH区段扩充RAM,请画出这些芯片与最大组态的系统总线的连接示意图。 解: 方法为:容量=末地址-首地址+1=214=16KB,所以要2片6264芯片。 A12~A0为片内地址,A15~A13作片选译码的输入CBA, 1 2 A19~ A16 A15~ A13 0100 0100 A18 A19 A17 A16 A15 A14 A13 C B A CS1 D7~D0 A12~A0 MEMW MEMR CS2 6264 (1) WE OE CS2 6264 (2) CS1 138 +5V A12~A0 全0~全1 全0~全1 地址范围 40000H~41FFFH 42000H~43FFFH 000 001 E3 E2 E1 Y0 Y1 Y2 Y3 WE OE

OUT 81H,AL ;参见p.239表

9.9 XT机执行了下面两条指令后,会产生什么作用? Mov al, 47h ;01 0 0 01 11 out 0bh, al 解: 从端口地址0BH可知,这是方式寄存器;这两条指令执行后对通道3进行了方式设置,具体为:以单字节模式、地址递增、禁止自动初始化、在通道3上进行DMA写。

9.10 题略,参见p.212;寄存器地址参见p.204表9-2 程序注解: MOV DX, 0CH ;指向 高/地触发器 MOV AL, 0 OUT DX, AL ;清除高/地触发器 MOV DX, 09H ;指向 请求寄存器 OUT DX, AL ; MOV AX, 01 OR AX, SI MOV DX, 0BH ;指向 方式寄存器 OUT DX, AL ;设置工作方式 MOV AX, ES ;取段地址 MOV CL, 04 ROL AX, CL ;左移4位 MOV CH, AL ;暂存高位地址 AND AL, 0F0H ;屏蔽掉高位,取有效的低位 ADD AX, BX ;加上偏移地址 JNC NET1 ;有进位则 INC CH ;高位加1 NET1: MOV DX, 02 ;指向通道1的地址寄存器 OUT DX, AL MOV AL, AH OUT DX, AL MOV AL, CH AND AL, 0FH MOV DX, 83H ;指向 通道1的页面寄存器

OUT DX, AL MOV AX, DI ;N DEC AX ;N-1 MOV DX, 03 ;指向 通道1的字节数寄存器 OUT DX, AL ;写入计数值低8位 MOV AL, AH OUT DX, AL ;写入计数值高8位 MOV DX, 0AH ;指向 单通道屏蔽字 MOV AL,1 OUT DX, AL MOV DX,8 ;指向 命令寄存器 MOV AL,60H ;01100000 OUT DX, AL MOV DX,08H ;指向 状态寄存器 NET2:IN AL,DX ;读入状态字 AND AL,02H ;判通道1传送结束否,D1=1? JZ NET2 ;没有结束继续读入状态 答: 若主机通过通道1发送数据,相当于进行DMA读,若采用请求模式,此时SI可以为09h;若采用单字节模式,SI为49h。 若主机通过它接收数据,相当于进行DMA写,若采用请求模式,此时SI可以为05h;若采用单字节模式,SI为45h。

=================

题10.2 8255两组都定义为方式1输入,则方式控制字是什么?方式控制字中的另外两位确定什么功能? 解: 方式控制字为1 01 1 X 1 1 Y,其中X、Y可取0或1,因为这两位分别确定C端口的上部和下部的工作方式;本题中X位决定PC6和PC7的输入输出功能,Y位已无意义。

10.3 总结8255A端口C的使用特点。 答: 1、8位并行输入输出。 2、高4位、低4位可分别输入输出。 3、按规定与端口A和端口B配合,完成相应的握手信号。 10.4 设定8255A的端口A为方式1输入,端口B为方式1输出,则读取口C的数据的各位是什么含义? 解答: 读取口C的数据各位的含义是:

PC7~6为输入信息或输出锁存信息(根据端口C上部的输入/出定义);

PC5~3为端口A的输入缓冲器满否、内部触发器状态、有否中断请求信息。 PC2~0为端口B的内部触发器状态、输出缓冲器满否、有否中断请求信息。 (参见下图)

D7

OBFA D6

INTEAO D5

IBFA D4

INTEAI D3

INTRA D2

INTEB D1

IOBFB D0

INTRB I/O I/O IBFA INTEAI INTRA INTEB OBFB INTRB 输入缓冲器满 外设送入数据时的锁存信号STBA(PC4脚的输入)使其有效, CPU读走数据时(RD的上升沿)使其失效。 口A中断请求输出(PC4)允许 口A中断请求输出脚(PC3)状态 口B中断请求输出(PC2)允许 口B中断请求输出脚(PC0)状态 输出缓冲器满 CPU写入数据时(WR=0)使其有效, 外设取走数据时应答信号ACKb(PC2脚的输入)使其失效

10.5 对8255A的控制寄存器写入B0H,则其端口C的PC5引脚是什么作用的信号线?

解: B0H = 10110000 B,可知8255A端口A工作于方式1输入,所以PC5引脚的作用是IBFA,为1表示输入缓冲器满。

10.6 10.2.2节用8255A端口A方式0与打印机连接,如果采用端口B,其他不变,请说明应该如何修改接口电路和程序。(参见p.221) 解: 连接图中只要把端口A改成端口B即可。程序中控制方式字可作必要的修改,“mov al,10000001B”可以修改为“mov al,1×××0001B”,只要保持C端口上部输出、下部输入即可,因为PC7、PC2的连接没有变;端口A任意、端口B为方式0输出,程序涉及端口A的地方改为端口B的地址:“mov dx,0fff8h”必须修改数据口地址“mov dx,0fffAh”。

10.7 10.2.3节用8255A端口A方式1与打印机连接,如果采用端口B,其他不变,请说明应该如何修改接口电路和程序。(参见p.222) 解提示: 连接图中除了把端口A改成端口B,还要用PC0、PC1、PC2分别取代PC3、PC7、PC6。程序中也要作相应的替换。控制方式字要改为端口B选通输出,即“mov al,0a0h”可以为mov al,84H,端口A任意、端口B为方式1输出;设置PC6的地方改为设置PC2:“mov al,0ch”改为04h;测试PC7的地方改为测试PC1:“test al, 80H”改为02h;程序涉及端口A的地方改为端口B的地址:“mov dx,0fff8h”必须修改数据口地址“mov dx,0fffAh”。

10.8 题略,参见p.275图11-22。

解: 端口C低端输入、高端输出,由于反相器的存在,输出1时灯亮。 假设端口C和控制端口地址为 0FFFCH和0FFFEH, ;8255A初始化程序 MOV AL,81H MOV DX,0FFFEH OUT DX,AL ; MOV DX,0FFFCH IN AL,DX ;开关闭合时,输入0 MOV CL,4 ROL AL,CL ;低4位移至高4位

NOT AL ;取反,变0为1 OUT DX,AL

10.9 设8255A的端口B以方式1连接某输入设备,其中断请求信号引入中断控制器的IRQ3。要使CPU响应外设的中断请求,初始化时应开放3级中断,请编程说明。

提示:本题包含8255A和8259A的初始化,中断服务程序中读取端口B的输入。8255A 控制字:1xxxx11x

部分解:

;8255A的初始化 MOV AL,86H MOV DX,0FFFEH OUT DX,AL

; 8259A的初始化:(IRQ3的中断向量为0BH,对应的ICW2为08H) MOV AL,13H;ICW1

OUT 20H,AL

MOV AL,08H;ICW2 OUT 21H,AL MOV AL,07H;ICW4

OUT 21H,AL

; 对应中断屏蔽字为11101111,中断屏蔽位设置程序:

IN AL,21H ;读出IMR

AND AL,0F7H ;设置允许IRQ 3,其它位不影响 OUT 21H,AL ;再写入IMR 即OCW1

10.12 提示:书上已有程序段,只需将端口号218H~21BH对应到行列port,再将程序连接完整,注意在最初,colport 是PA为输入,rowport是PB为输出,得到列值;反转设置为PA为输出, PB为输入,然后得到行值;最后组合在AX中。

10.16题略,参见p.243 mov dx, 0fffbh ;初始化8255A mov al, 89h ;1000 1001b out dx, al ;显示子程序

本文来源:https://www.bwwdw.com/article/ynz5.html

Top