微机原理王忠民版 课后答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

部分习题答案

第二章计算机中的数值与编码

1、将十进制数转换为二进制与十六进制

(1) 129、75=1000 0001.11B=81、CH(2)218、8125=11011010、1101B=DA、DH

(3) 15.625=1111、101B=F、AH(4)47、15625=10 1111、0010 1B=2F、28 H

2、将下列二进制数转换为十进制与十六进制

ﻩ(1) 111010 B=58=3AHﻩ(2) 10111100.111B=188、875=BC、E H ﻩ(3) 0、1101 1B=0、84375 =0、D8Hﻩ(4) 11110、01B=30.25 =1E.4H

3、完成下列二进制数的加减法运算

(1) ﻩ1001、11+100、01=1110.00ﻩ(2)1101010110.1001-01100001.0011=01110101.0110

ﻩ(3) ﻩ00111101+10111011= (4) 01011101、0110-101101、1011=101111、1011

4、完成下列十六进制数的加减法运算

) ﻩABF、8H-EF6、AH=9C28、E H

(1)ﻩ745CH+56DFH=D14BHﻩ(2

(3) 12AB、F7+3CD、05=1678 、FC H(4) 6F01H-EFD8H=7F29 H

5、计算下列表达式的值

(1)ﻩ128、8125+10110101、1011B+1F、2H=101010101、1010B

(2) 287、68-10101010、11H+8E、EH=103、CEHﻩﻩ

(3)ﻩ18、9+1010、1101B+12、6H-1011、1001=36、525

6、选取字长n为8位与16位两种情况,求下列十进制数的补码。

1101 1111, 1111111111011111

(1) X=-33的补码:ﻩ

(2) Y=+33的补码: 0010 0001, 00000000 00100001

ﻩ(3) ﻩZ=-128的补码:1000 0000,ﻩ1111 11111000 0000

0000 000001111111

(4) N=+127的补码:01111111,ﻩ

ﻩ(5) A=-65的补码: 1011 1111,ﻩ1111 1111 10111111

00000000 0100 0001

(6) B=+65的补码: 0100 0001,ﻩ

(7) C=-96的补码:1010 0000, 1111 11111010 0000

(8)ﻩD=+96的补码: 01100000,ﻩ0000 0000 0110 0000

7、写出下列用补码表示的二进制数的真值

(1)ﻩ[X]补=1000 0000 0000 0000 HﻩﻩX=-100000000000 0000 H=-32768

(2) ﻩ[Y]补=00000001 0000 0001 H Y=+0000 0001 0000 0001H=+257

ﻩ(3) [Z]补=1111 111010100101H ﻩZ=-0000000101011011 H=-347ﻩ

ﻩ(4) [A]补=00000010 0101 0111 H ﻩA=+0000001001010111H=+599

8、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果就是否溢出。

(1) 43+8

ﻩﻩ∵ﻩ[43]补=00101011B,[8]补=00001000B

ﻩﻩ∴ [43]补+[8]补=B+B=B=33H

ﻩ00101011B

00001000Bﻩﻩﻩﻩ

+ﻩ

ﻩﻩ00110011Bﻩﻩﻩ

∵ C S=0,C D=0,OF=CS⊕CD=0⊕0=0

ﻩ∴无溢出

(1) 43+8ﻩ33H ﻩ(无溢出)(2)-52+7ﻩD3H(无溢出)

(3)60+90ﻩ96 H ﻩ(溢出)(4)72-8 40 H (无溢出)

(5) -33+(-37)ﻩﻩ0BA Hﻩ(无溢出)(6) -90+(-70) 60 Hﻩ(溢出)

ﻩ(7) ―9―(―7) FE H (无溢出)ﻩ(8) 60-90 ﻩE2 Hﻩ(无溢出)

9、设有变量x=11101111B,y=11001001B,z=01110010B,v=01011010B,试计算x+y=?,x+z =?,y+z=?,z+v=?,请问:①若为无符号数,计算结果就是否正确?②若为带符号补码数,计算结果就是否溢出?

ﻩx+y=11101111B+11001001B=B=1B8 H

ﻩﻩﻩ1110 1111B

ﻩﻩ+11001001B

ﻩﻩﻩ10111000B

ﻩ①若为无符号数ﻩﻩﻩﻩ②若为带符号补码数

ﻩﻩ∵CF=1 ∴不正确ﻩﻩ∵ CF=1,DF=1 OF=0 ∴不溢出

x+y=0B8 Hﻩx+z= 61 Hﻩﻩy+z = 3BHﻩﻩ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)称为计数器。在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。

ﻩDX(Data)称为数据寄存器。在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。

ﻩ (2)地址寄存器:一般用来存放段内的偏移地址。

ﻩSP(Stack Pointer)称为堆栈指针寄存器。在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。

BP(Base Pointer)称为基址寄存器。作为通用寄存器,它可以用来存放数据,但更经常更重要的用途就是存放操作数在堆栈段内的偏移地址。

ﻩSI(Source Index)称为源变址寄存器。SI存放源串在数据段内的偏移地址。

ﻩﻩDI(DestinationIndex)称为目的变址寄存器。DI存放目的串在附加数据段内的偏移地址。

ﻩ(3) 段寄存器:用于存放段地址

ﻩCS(CodeSegment)称为代码段寄存器,用来存储程序当前使用的代码段的段地址。CS的内容左移4位再加上指令指针寄存器IP的内容就就是下一条要读取的指令在存储器中的物理地址。

DS(Data Segment)称为数据段寄存器,用来存放程序当前使用的数据段的段地址。DS的内容左移4位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的物理地址。

SS(StackSegment)称为堆栈段寄存器,用来存放程序当前所使用的堆栈段的段地址。堆栈就是存储器中开辟的按“先进后出”原则组织的一个特殊存储区,主要用于调用子程序或执行中断服务程序时保护断点与现场。

ES(ExtraSegment)称为附加数据段寄存器,用来存放程序当前使用的附加数据段的段地址。

附加数据段用来存放字符串操作时的目的字符串。

ﻩﻩﻩ(4) 控制寄存器

IP(Instmcdon Pointer)称为指令指针寄存器,用来存放下一条要读取的指令在代码段内的偏移地址。用户程序不能直接访问IP。

ﻩFLAGS称为标志寄存器,它就是一个16位的寄存器,但只用了其中9位,这9位包括(个状态标志位与3个控制标志位。它用来反映算术运算与逻辑运算结果的一些特征,或用来控制CPU的某种操作。

3.8086/8088CPU中有哪些寄存器可用来指示操作数在存储器中某段内的偏移地址?

相关文档
最新文档