微机原理王忠民版课后答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
部分习题答案
(3) 0.1101 1B= 0.84375 = 0.D8H (4) 11110.01 B= 30.25 =1E.4H
3、完成下列二进制数的加减法运算
(1)
1001.11 + 100.01 = 1110.0001110101.0110
(4) 01011101.0110 — 101101.1011 = 101111.1011
4、 完成下列十六进制数的加减法运算
(1) 745CH + 56DFH= D14B H (2)
ABF.8H — EF6.AH = 9C28.E H
(3)
12AB.F7 + 3CD.05= 1678 .FC H (4) 6F01H — EFD8H= 7F29 H
5、 计算下列表达式的值 103.CEH
(3) 18.9 + 1010.1101B + 12.6H — 1011.1001 = 36.525 6、选取字长n 为8位和16位两种情况,求下列十进制数的补码。 (1) X=— 33的补码: ⑵ Y=+ 33的补码: 0010 0001 ,
0000 0000 0010 0001
⑶
Z=— 128 的补码:1000 0000 , 1111 1111 1000 0000
⑷ N=+ 127的补码:
0111 1111 , 0000 0000 0111 1111
A=— 65的补码:
1011 1111 , 1111 1111 1011 1111 ⑹ B=+ 65的补码: 0100 0001 , 0000 0000 0100 0001 ⑺ C=— 96的补码:
1010 0000 , 1111 1111 1010 0000
(8) D=+ 96的补码:
0110 0000 , 0000 0000 0110 0000 7、写出下列用补码表示的二进制数的真值
(1) [X 补=1000 0000 0000 0000 H X = — 1000 0000 0000 0000 H =— 32768
(2)
[Y 补=0000 0001 0000 0001 H
Y = + 0000
0001
0000
0001 H =
+ 257
(3) [Z 补=1111 1110 1010 0101 H
Z= — 0000 0001 0101 1011 H =—347
(4)
[A 补=0000 0010 0101 0111 H
A= + 0000 0010 0101 0111 H =+ 599
8、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果是否溢出。
(1) 43 + 8
[43]补=00101011B , [8]补=00001000B
[43]补+ [8]补=00101011B + 00001000B = 00110011B = 33H
00101011B
+ 00001000B 00110011B
T C s = 0, C D = 0, OF= C S ® C D = 0 ® 0= 0 ••• 无溢出 (1) 43
+ 8 33H (无溢出)
第二章 1、 将十进制数转换为二进制和十六进制
(1) 129.75 = 1000 0001.11B = 81.CH (3) 15.625
= 1111.101B = F.AH
2、 将下列二进制数转换为十进制和十六进制
(1) 111010 B= 58 =3A H 计算机中的数值和编码
(2) 218.8125 = 1101 1010.1101B = DA.DH
⑷ 47.15625
= 10 1111.0010 1B = 2F.28 H
(2) 1011 1100.111B= 188.875 = BC.E H
(2) — 52 + 7
D3 H (无溢出)
(3) 60 + 90 96 H
(溢出) ⑷ 72
—8 40 H (无溢出)
(5)
— 33+ ( — 37)
0BA H (无溢出)
⑹
—90+ ( —70) 60 H ( 溢
出)
(7) — 9—( — 7) FE H (无溢出) (8) 60 —90
E2 H (无溢出) 9、设有变量 xyz = 01110010B , v = 01011010B ,试计算 x +y = ?, x +z= ?, y +z= ?, z +v= ?,请问:① 若
+
1100 1001B
1011
1000B
① 若为无符号数
② 若为带符号补码数
•/ CF=1
•••不正确
•/ CF=1 , DF = 1
OF = 0 •-不溢出
x +y = 0B8 H x +z = 61 H
y +z = 3B H z +v = 0CC H ① 不正确 不正确
不正确
正确 ② 不溢出
不溢出
不溢出
溢出
第三章80X86微处理器
1•简述 答: 8086/8088CPU 中BIU 和EU 的作用,并说明其并行工作过程。
(1) BIU 的作用:计算20位的物理地址,并负责完成
CPU 与存储器或I/O 端口之间的数据传送。
(2) EU 的作用:执行指令,并为
BIU 提供所需的有效地址。
(3) 并行工作过程:当 EU 从指令队列中取出指令执行时,
BIU 将从内存中取出指令补充到指令
队列中。这样就实现了取指和执行指令的并行工作。
2. 8086/ 8088CPU 内部有哪些寄存器?其主要作用是什么?
答:8086/8088CPU 内部共有14个寄存器,可分为 4类:数据寄存器 4个,地址寄存器 4个,段寄 存器4个和控制寄存器2个。其主要作用是:
(1) 数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。
AX(Accumulator)称为累加器。用该寄存器存放运算结果可使指令简化,提高指令的执行速度。 此外,所有
的I /O 指令都使用该寄存器与外设端口交换信息。
BX(Base)称为基址寄存器。用来存放操作数在内存中数据段内的偏移地址,
CX :Counter)称为计数器。在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化, 有利于提
高程序的运行速度。
DXData)称为数据寄存器。在寄存器间接寻址的
I /O 指令中存放I /O 端口地址;在做双字长
乘除法运算时,DX 与AX 一起存放一个双字长操作数,其中
DX 存放高16位数。
(2) 地址寄存器:一般用来存放段内的偏移地址。
SRStack Pointer)称为堆栈指针寄存器。在使用堆栈操作指令(PUSH 或POP)对堆栈进行操作时, 每执行一次
进栈或出栈操作,系统会自动将 SP 的内容减2或加2,以使其始终指向栈顶。
BRBase Poin ter) 称为基址寄存器。作为通用寄存器,它可以用来存放数据,但更经常更重要 的用途是存
放操作数在堆栈段内的偏移地址。
SI (Source Index)称为源变址寄存器。SI 存放源串在数据段内的偏移地址。 DI(Destination Index)
称为目的变址寄存器。 DI 存放目的串在附加数据段内的偏移地址。
(3) 段寄存器:用于存放段地址
C&Code Segment)称为代码段寄存器,用来存储程序当前使用的代码段的段地址。
CS 的内容左
移4位再加上指令指针寄存器 IP 的内容就是下一条要读取的指令在存储器中的物理地址。
DSData Segment)称为数据段寄存器,用来存放程序当前使用的数据段的段地址。
DS 的内容左
移4位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的物理地 址。
为无符号数,计算结果是否正确?② x +y B = 1B8 H
1110 1111 B
若为带符号补码数,计算结果是否溢出?