微机原理及接口技术习题答案Word格式文档下载.docx
《微机原理及接口技术习题答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术习题答案Word格式文档下载.docx(43页珍藏版)》请在冰豆网上搜索。
[X+Y]补=[X]补+[Y]补=00110011B+10101010B=11011101B
X+Y=[[X+Y]补]补=[11011101]补=10100010+1=10100011B
10100011B,因为
,所以未产生溢出。
②11110111B,因为
,所以产生溢出。
③01110111B,因为
④00100011B,因为
6.若使与门的输出端输出高电平,则各输入端的状态是什么?
各输入端为高电平。
7.若使与非门的输出端输出低电平,则各输入端的状态是什么?
8.如果74LS138译码器的Y4端输出低电平,则C、B、A三个输入端的状态分别是什么?
C、B、A三个输入端的状态分别是‘1’,‘0’,‘0’。
第二章习题及答案
1.8086/8088CPU由哪两大功能部分所组成?
简述它们的主要功能?
8086/8088CPU由EU和BIU两大功能部分组成。
执行单元EU主要完成指令的译码和执行。
执行单元通过EU控制电路从BIU中取出指令,经过指令译码形成各种定时控制信号,向EU内各功能部件发出相应的控制命令,以完成指令所规定的操作。
总线接口单元BIU是8086/8088同外部联系的接口。
它负责所有涉及外部总线的操作,包括取指令、读操作数、写操作数、地址转换和总线控制等。
BIU内部设置指令预取队列,每当指令队列有两个或两个以上的字节空间,且执行单元未向BIU申请读/写存储器操作数时,BIU顺序地预取后续指令的代码,并填入指令队列中。
当EU执行的是转移指令时,则BIU清除当前的指令预取队列的内容,从新的地址取回指令,并立即送到EU去执行,然后,从后续的指令序列中取回指令填满队列。
2.什么是指令流水线?
指令流水线需要哪些硬件支持?
指令流水线是指8086/8088CPU内部的执行单元EU和总线接口单元BIU通过指令预取队列协同工作从而实现指令的并行执行。
指令流水线最主要的硬件支持是BIU内部的指令预取队列。
3.逻辑地址如何转换成物理地址?
已知逻辑地址为2D1EH:
35B8H,对应的物理地址是什么?
逻辑地址是段基址和段内偏移地址形式的地址。
物理地址=段基址×
16+段内偏移
35B8H,则对应的物理地址
4.8088和8086的指令预取队列的长度分别是多少?
8088的指令预取队列的长度为4字节;
8086的指令预取队列的长度为6字节。
5.简述8086/8088CPU内部的各寄存器的作用。
AX、BX、CX和DX通用寄存器一般用于存放参与运算的数据或运算的结果。
SP:
用于存放堆栈栈顶的段内偏移量。
BP:
用于存放访问内存时的偏移地址。
SP和BP也可以用来存放数据,它们的默认段寄存器都是SS。
SI和DI通常在间接寻址方式中存放操作数的偏移地址。
在串操作指令中,DI的默认段寄存器是ES。
SI和DI也可以用来存放数据。
CS:
代码段寄存器,用于存放代码段的段基址。
DS:
数据段寄存器,用于存放数据段的段基址。
SS:
堆栈段寄存器,用于存放堆栈段的段基址。
ES:
附加段寄存器,用于存放附加段的段基址。
IP:
指令指针寄存器,用于存放CPU即将执行的下一条指令在代码段中的段内偏移地址。
FLAGS:
标志寄存器,用于存放指令执行结果的特征。
6.8086/8088CPU内部的状态标志寄存器共有几位标志位?
各位的含义是什么?
状态标志寄存器共有9位标志位,其中包含6个状态标志位和3个控制标志位。
状态标志位:
CF(CarryFlag):
进位标志。
当算术运算结果使最高位产生进位或借位时,则CF=1;
否则CF=0。
PF(ParityFlag):
奇偶标志。
若运算结果中的低8位含有偶数个1,则PF=1;
否则PF=0。
AF(AuxiliarycarryFlag):
辅助进位标志。
运算过程中若D3位向D4有进位或借位时,AF=1;
否则AF=0。
ZF(ZeroFlag):
零标志。
若运算结果为0,则ZF=1;
否则ZF=0。
SF(SignFlag):
符号标志。
若运算结果为负,则SF=1;
否则SF=0。
OF(OverflowFlag):
溢出标志。
当带符号数的补码运算结果超出机器所能表达的范围时,就会产生溢出,这时OF=1;
否则OF=0。
控制标志位:
DF(DirectionFlag):
方向标志。
控制串操作指令的地址变化的方向。
当DF=0时,串操作指令的地址指针按增量变化;
当DF=1时,串操作指令的地址指针按减量变化。
IF(InterruptFlag):
中断允许标志。
控制微处理器是否允许响应可屏蔽中断请求。
若IF=1,则允许响应;
否则禁止响应。
TF(TrapFlag):
单步标志。
TF=1时,CPU工作在单步方式。
7.8086/8088系统中存储器的分段原则是什么?
分段原则是要求段的起始单元的物理地址是16的整数倍,每段的物理长度为64KB。
8.当ALE有效时,8088的地址/数据总线上将出现什么信息?
当ALE有效时,8088的地址/数据总线上将出现地址信息。
9.READY管脚的作用是什么?
READY用于微处理器时序中插入等待状态。
若该引脚被置为低电平,则微处理器进入等待状态并保持空闲;
若该引脚被置为高电平,则它对微处理器的操作不产生影响。
CPU在读、写操作时序中的T3时钟周期开始处,通过检测READY管脚的状态来决定是否插入TW等待时钟周期,以解决CPU与存储器或I/O接口之间速度不匹配的矛盾。
10.为什么在基于8086/8088的系统中经常需要使用缓冲器?
由于基于8086/8088的系统驱动能力的不足,需要使用缓冲器。
11.8088工作在最小模式下包含哪些控制信号?
最小模式下包含的控制信号有:
RD、WR、IO/M、ALE、DT/R、DEN和INTA等信号。
12.若CS=4000H,则当前代码段可寻址的存储空间范围是多少?
CS=4000H时,当前代码段可寻址的存储空间范围为40000H~4FFFFH。
第三章习题及答案
1.什么叫寻址方式?
8086指令系统中有哪几种寻址方式?
寻址方式,即获得地址的方法,主要指获得段内偏移地址的方法,段基址常采用默认方式获得。
8086CPU指令系统的寻址方式有两类:
获得指令中操作数地址的方法。
获得要执行的下一条指令的地址的方法。
8086指令系统中有8种操作数寻址方式,立即寻址。
。
2.下列指令中BUFF为字节类型变量,DATA为常量,指出下列指令中源操作数的寻址方式:
(1)MOVAX,1200
(2)MOVAL,BUFF
(3)SUBBX,[2000H]
(4)MOVCX,[SI]
(5)MOVDX,DATA[SI]
(6)MOVBL,[SI][BX]
(7)MOV[DI],AX
(8)ADDAX,DATA[DI+BP]
(9)PUSHF
(10)MOVBX,ES:
[SI]
(1)MOVAX,1200;
立即寻址
(2)MOVAL,BUFF;
直接寻址
(3)SUBBX,[2000H];
(4)MOVCX,[SI];
寄存器间接寻址
(5)MOVDX,DATA[SI];
寄存器相对寻址
(6)MOVBL,[SI][BX];
基址变址寻址
(7)MOV[DI],AX;
寄存器寻址
(8)ADDAX,DATA[DI+BP];
基址变址相对寻址
(9)PUSHF;
隐含寻址
[SI];
3.指出下列指令的错误并改正。
(1)MOVDS,1200
(2)MOVAL,BX
(3)SUB33H,AL
(4)PUSHAL
(5)MUL45H
(6)MOV[BX],[SI]
(7)MOVSBYTEPTRDS:
[DI],BYTEPTRDS:
(8)ADDDATA[DI+BP],ES:
[CX]
(9)JMPBYTEPTR[SI]
(10)OUT3F8H,AL
(1)MOVDS,1200;
不能用立即数给段基址寄存器赋值
(2)MOVAL,BX;
操作数类型不一致
(3)SUB33H,AL;
立即数不能作为目的操作数
(4)PUSHAL;
压栈指令的操作数必须是字类型
(5)MUL45H;
乘法指令中的操作数不能是立即数
(6)MOV[BX],[SI];
源和目的操作数不能同时为内存操作数
(7)MOVSBYTEPTRDS:
[SI];
目的操作数应该在ES段。
[CX];
CX不能做间址寄存器使用
(9)JMPBYTEPTR[SI];
操作数必须是字类型
(10)OUT3F8H,AL;
16位的端口地址不能直接在输入输出指令中使用。
4.根据要求写出一条(或几条)汇编语言指令。
(1)将立即数4000H送入寄存器BX。
(2)将立即数4000H送入段寄存器DS。
(3)将变址寄存器DI的内容送入数据段中2000H的存储单元。
(4)把数据段中2000H存储单元的内容送段寄存器ES。
(5)将立即数3DH与AL相加,结果送回AL。
(6)把BX与CX寄存器内容相加,结果送入BX。
(7)寄存器BX中的低4位内容保持不变,其他位按位取反,结果仍在BX中。
(8)实现AX与-128的乘积运算。
(9)实现CX中高、低8位内容的交换。
(10)将DX中D0、D4、D8位置1,其余位保持不变。
MOVBX,4000H
MOVAX,4000H
MOVDS,AX
MOV[2000H],DI
MOVAX,[2000H]
MOVES,AX
AD