微型计算机原理复习(第六版)姚向华编著(转载请注明出处—
https://www.cnblogs.com/qingl
)
第一章P37
05. 设机器字长为8位,最高位为符号位,试对下列各算式进行二进制补码运算:
(2)8 + 18 = ?[8]补=[8]原 [18]补=[18]原
(4)-25 + 6 = ?[-25]补=[[-25]补]补 [6]补=[6]原
(6)9 – (-7)= ?[9]补=[9]原 [-7]补=[[-7]补]补
(8)-25 – 6 = ?[-25]补=[[-25]补]补 [6]补=[6]原
解:
2)0000 1000 + 0001 0010 = 0001 1010 符号位为0,结果为正
4)[25]原=0001 1001 [-25]补=1110 0111
1110 0111 + 0000 0110 = 1110 1101 符号位为1,结果为负
对结果再次求补,得 0001 0011 即结果为-19
6)即为9 + 7
0000 1001 + 0000 0111 = 0001 0000 符号位为0,结果为正
8)[25]原=0001 1001 [-25]补=1110 0111
[6]原=0000 0110 [-6]补=1111 1010
1110 0111 + 1111 1010 = 1110 0001 符号位为1,结果为负
对结果再次求补,得 0001 1111 即结果为-31
06. 设机器字长为8位,最高位为符号位,试用“双高位”判别法判断下列二进制运算有没有溢出产生。若有,是正溢出还是负溢出?
(2)-52 + 7 = ?
(4)72 – 8 = ?
(6)-90 + (-70) = ?
解:
2)[52]原=0011 0100 [-52]补=1100 1100
1100 1100 + 0000 0111 = 1101 0011
C
s
=0
,C
p
= 0 无溢出
4)[8]原=0000 1000 [-8]补=1111 1000
0100 1000 + 1111 1000 =(1) 0100 0000
C
s
=1
,C
p
= 1 无溢出
6)[90]原=0101 1010 [-90]补=1010 0110
[70]原=0100 0110 [-70]补=1011 1010
1010 0110 + 1011 1010 = (1)0110 0000
C
s
=1
,C
p
= 0 负溢出
C
s
表示最高位(符号位)的进位,C
p
表示数值最高位的进位。
一个正数和一个负数相加,和肯定无溢出。若和为正数,则C
s
= 1,C
p
= 1; 若和为负数,则C
s
=0,C
p
= 0
08. 将下列十进制数变为8421 BCD码:
(2)5324
解:0101 0011 0010 0100B
11. 写出下列各数的ASCII代码:
(1)51
(3)AB
解:(1)35H31H
(2)41H42H
第二章P69
- 8086/8088 CPU中BIU部件和EU部件各包括哪些部件?各自的功能是什么?追踪指令地址的寄存器是什么?
答:
总线接口部件BIU包括4个16位段寄存器、1个16位指令指针、1个地址加法器、1个指令流队列和总线控制电路。 主要功能:负责完成CPU与存储器或I/O设备之间的数据传送。
执行部件EU包括算术逻辑单元、16位标志寄存器、寄存器阵列、指令译码器及控制电路。 主要功能:负责指令译码和指令执行。
追踪指令地址的寄存器是IP(指令指针寄存器)。根据IP内容和CS(代码段寄存器)的内容确定出该要执行指令的地址。
05. 若已知一个字串的起始逻辑地址为2000H:1000H,试求该字串中第16个字的逻辑地址和物理地址。
解:
物理地址 = 段地址 × 10H + 偏移地址
起始逻辑地址为2000H:1000H
第n个字的逻辑地址为
段地址:偏移地址首址 + (n – 1)× 2
第16个字的逻辑地址为
段地址:偏移地址首址 + (16 – 1)× 2 = 2000H:101EH
物理地址为:2000 × 10H + 101EH = 2101EH
06. 若已知当前栈顶的逻辑地址为3000H:200H,试问压入两个字后栈顶的逻辑地址和物理地址是什么?若又弹出3个字后,则栈顶的逻辑地址和物理地址又是什么?
解:
压入两个字后,SP的内容为
(SP)- 字数 × 2 = 0200H – 2 × 2 = 01FCH 01FC + 3 × 2 = 0202H
所以逻辑地址为3000H:01FCH
物理地址为301FCH
第三章P118
1. 指出下列指令中源操作数和目的操作数的寻址方式:
源操作数 目的操作数<