内容发布更新时间 : 2024/11/16 17:31:13星期一 下面是文章的全部内容请认真阅读。
第一章习题及答案
1. 微处理器内部包含哪三大部分? 解: 运算器、控制器和寄存器组。
2. 完成下列数制的转换
①10101101B=( )D=( )H 解:10101101B=173D=ADH。
②0.11B=( )D 解:0.11B=0.75D。
③211.25=( )B =( )H 解:211.25=11010011.01B=D3.4H。
④10111.0101B=( )H=( )BCD
解:10111.0101B=17.5H=23.3125D=(0010 0011.0011 0001 0010 0101)BCD
3. 已知X=+1011010B,Y=–0011011B,设机器数为8位,分别写出X、Y的原码、反码和补码。
解:
?X?原?01011010B?Y?原?10011011B ?X?反?01011010B ?Y?反?11100100B
?X?补?01011010B?Y?补?11100101B
4. 已知X的真值为32,Y的真值为–19,求?X?Y?补?? 解:?X?Y?补?00001101B
5. 已知X=51,Y=–86,用补码完成下列运算,并判断是否产生溢出(设字长为8位)。 ① X+Y ② X-Y ③ –X+Y ④ –X-Y 解:
10100011B,因为C6?C7?0,所以未产生溢出。
[X]补=00110011B [Y]补=[Y]反+1=[11010110]反+1=10101001+1=10101010B [X+Y]补=[X]补+[Y]补=00110011B+10101010B=11011101B X+Y=[[X+Y]补] 补=[11011101] 补=10100010+1=10100011B ② 11110111B,因为C6?C7?1,所以产生溢出。 ③ 01110111B,因为C6?C7?1,所以产生溢出。 ④ 00100011B,因为C6?C7?0,所以未产生溢出。
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+段内偏移
已知逻辑地址为2D1EH:35B8H,则对应的物理地址?2D1EH?16?35B8H?30798H
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内部的状态标志寄存器共有几位标志位?各位的含义是什么?