(完整版)汇编语言与接口技术习题解答,推荐文档
- 格式:pdf
- 大小:269.19 KB
- 文档页数:16
习题一解答:
1.3(1)[0.0000]原=0.0000 [0.0000]反=0.0000 [0.0000]补=0.0000
(2)[0.1001]原=0.1001 [0.1001]反=0.1001 [0.1001]补=0.1001
(3)[-1001]原=11001 [-1001]反=10110 [-1001]补=10111
1.4[N]反=1.0101 [N]原=1.1010 [N]补=1.0110 N=-0.1010
1.5(1)原码运算:比较可知,正数较大,用正数减负数,结果为正
反码运算:01010011-00110011=[01010011]反+[-00110011]反=001010011 +[100110011]反=001010011+111001100=000100000补码运算:01010011-00110011=[01010011]补+[-00110011]补=001010011 +[100110011]补=001010011+111001101=000100000
(2)原码运算:比较可知,负数较大,用负数减正数,结果为负
反码运算:0.100100-0.110010=0.100100+[1.110010]反=0.100100+
1.001101=1.110001
补码运算:0.100100-0.110010=0.100100+[1.110010]补=0.100100+
1.001110=1.110010
1.6(1) (11011011)2=(219)10=(001000011001)BCD
(2) (456)10=(010*********)BCD
(3) (174)8=(124)10=(000100100100)BCD
(4) (2DA)16=(730)10=(011100110000)BCD
1.7(1)9876H看成有符号数时,默认为负数的补码,转换为十进制数是:-26506
(2)9876H看成无符号数时,转换为十进制数是:39030
1.8(1)98的压缩BCD码为:10011000B
(2)98的非压缩BCD码为:0000100100001000B
1.9(1)[S1+S2]补=[S1]补+[S2]补=00010110+00100001=00110111,无溢出
[S1-S2]补=[S1]补+[-S2]补=00010110+11011111=11110101,无溢出
(2)[S1+S2]补=[S1]补+[S2]补=00010110+11011111=11110101,无溢出
[S1-S2]补=[S1]补+[-S2]补=00010110+00100001=00110111,无溢出
(3)[S1+S2]补=[S1]补+[S2]补=01100100+00011110=10000010,有溢出
[S1-S2]补=[S1]补+[-S2]补=01100100+11100010=01000110,无溢出
(4)[S1+S2]补=[S1]补+[S2]补=10011100+11100010=01111110,有溢出
[S1-S2]补=[S1]补+[-S2]补=10011100+00011110=10111010,无溢出
习题二解答:
2.1答:8086有哪些寄存器组?各有什么用途?
①通用寄存器AX、BX、CX、DX
它既可用作16位寄存器,又可将它拆成高、低8位,分别作为两个独立的8位寄存器使用。AX称累加器。常用于存放算术逻辑运算中的操作数,所有I/O指令都使用累加器与外设接口传送数据;BX称基址寄存器。常用来存放访问内存时的基地址或用作间接寻址时的地址寄存器。CX称计数寄存器。在循环和串操作指令中用作计数器,指令执行后CX 寄存器中的内容会自动改变。DX称数据寄存器。在I/O指令中用来存放端口的地址,在乘除指令中用作辅助寄存器。
② 4个专用寄存器
SP堆栈指针寄存器。它在堆栈中存放栈顶偏移指针,;BP基址指针寄存器。一般也用来存放访问内存时的基地址;SI源变址寄存器,DI目的变址寄存器。它们常常用在变址寻址方式中。
③ 4个段寄存器
CS代码段寄存器。存放当前程序所在段的段基址;DS数据段寄存器。存放当前程序所用数据段的段基址;SS堆栈段寄存器。存放当前程序所用堆栈段的段基址,ES附加段寄存器。存放当前程序所用辅助数据段的段基址。
④指令指针寄存器IP
16位的指令指针寄存器IP用于存放下一条执行指令的偏移地址。
⑤标志寄存器FR
它是16位寄存器,但只使用其中的9位,这9位包括6个状态标志位和3个控制标志位。状态标志记录了前面算术逻辑运算结果的一些特征;控制标志是用户自己通过指令设置的,设置后将对其后的操作产生控制作用。
2.2答:8086流水线技术是利用8086内部指令队列,使8086/8088的执行部件和总线接口部件并行工作。其工作过程如下:当8086的指令队列中有两个空字节,或者8088的指令队列中有一个空字节,总线接口部件就自动执行一次指令周期,从内存中取出后续的指令代码放入队列中。当执行部件需要数据时,总线接口部件根据执行部件给出的地址,从指定的内存单元或外设中取出数据供执行部件使用。当运算结束时,总线接口部件将运算结果送入指定的内存单元或外设。当指令队列空时,执行部件等待,直到有指令为止。若总线接口部件正在取指令,执行部件此时正好发出访问总线的请求,则必须等总线接口部件取指令完毕后,该请求才能得到响应。一般情况下,程序按顺序执行,但当遇到跳转指令时,总线接口部件就使指令队列复位,从新地址取出指令,并立即传给执行部件去执行。
所以,8086流水线技术减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度,也降低了对存储器存取速度的要求。