微型计算机原理及应用-王忠民(第三版)微课后习题答案.doc
《微型计算机原理及应用-王忠民(第三版)微课后习题答案.doc》由会员分享,可在线阅读,更多相关《微型计算机原理及应用-王忠民(第三版)微课后习题答案.doc(21页珍藏版)》请在冰豆网上搜索。
《微型计算机原理及应用原理》课后习题答案
第一章
1.计算机按其使用的逻辑元件的不同被分为哪几代?
微型计算机是哪一代计算机的分支?
答:
电子管计算机、晶体管计算机、集成电路计算机和大规模、超大规模集成电路计算机。
微型计算机属于第四代计算机的分支。
2.简述冯·诺依曼计算机体系结构的基本思想。
答:
冯·诺伊曼基本设计思想为:
①以二进制形式表示指令和数据。
②程序和数据事先存放在存储器中,计算机在工作时能够高速地从存储器中取出指令并加以执行。
③由运算器、控制器、存储器、输入和输出设备等五大部件组成计算机系统。
3.微型计算机系统由哪几部分组成:
答:
微机系统分硬件和软件,硬件包括CPU、存储器、输入输出设备和输入输出借口,软件包括软件系统和应用软件。
6.何谓总线?
有哪几类?
作用如何?
答:
总线是计算机中各功能部件间传送信息的公共通道。
根据所传送的信息的内容与作用不同,总线可分为三类:
地址总线、数据总线、控制总线。
这三类总线作用为计算机各功能部件间传送地址、数据、控制信息的。
8.存储器读写操作的不同点?
答:
①读操作:
由CPU发出的读命令控制。
写操作:
由CPU发出的写命令控制。
②读操作:
把数据从内存中读出来,放到DB上。
写操作:
把DB上的内容,写入到存储器中。
第二章计算机中的数值和编码
1、将十进制数转换为二进制和十六进制
(1)129.75=10000001.11B=81.CH
(2)218.8125=11011010.1101B=DA.DH
(3)15.625=1111.101B=F.AH (4)47.15625=101111.00101B=2F.28H
2、将下列二进制数转换为十进制和十六进制
(1)111010B=58=3AH
(2)10111100.111B=188.875=BC.EH
(3)0.11011B=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=11111000 (4)01011101.0110-101101.1011=101111.1011
4、完成下列十六进制数的加减法运算
(1) 745CH+56DFH=D14BH
(2) ABF.8H-EF6.AH=9C28.EH
(3) 12AB.F7+3CD.05=1678.FCH(4) 6F01H-EFD8H=7F29H
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位两种情况,求下列十进制数的补码。
(1) X=-33的补码:
11011111, 1111111111011111
(2) Y=+33的补码:
00100001, 0000000000100001
(3) Z=-128的补码:
10000000, 1111111110000000
(4) N=+127的补码:
01111111, 0000000001111111
(5) A=-65的补码:
10111111, 1111111110111111
(6) B=+65的补码:
01000001, 0000000001000001
(7) C=-96的补码:
10100000, 1111111110100000
(8) D=+96的补码:
01100000, 0000000001100000
7、写出下列用补码表示的二进制数的真值
(1) [X]补=1000000000000000H X=-1000000000000000H=-32768
(2) [Y]补=0000000100000001H Y=+0000000100000001H=+257
(3) [Z]补=1111111010100101H Z=-0000000101011011H=-347
(4) [A]补=0000001001010111H A=+0000001001010111H=+599
8、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果是否溢出。
(1)43+8
∵ [43]补=00101011B,[8]补=00001000B
∴ [43]补+[8]补=00101011B+00001000B=00110011B=33H
00101011B
+ 00001000B
00110011B
∵CS=0,CD=0,OF=CS⊕CD=0⊕0=0
∴无溢出
(1)43+8 33H (无溢出)
(2)-52+7 D3H (无溢出)
(3)60+90 96H (溢出) (4)72-8 40H (无溢出)
(5)-33+(-37) 0BAH (无溢出) (6)-90+(-70) 60H (溢出)
(7)―9―(―7) FEH (无溢出) (8)60-90 E2H (无溢出)
9、设有变量x=11101111B,y=11001001B,z=01110010B,v=01011010B,试计算x+y=?
,x+z=?
,y+z=?
,z+v=?
,请问:
①若为无符号数,计算结果是否正确?
②若为带符号补码数,计算结果是否溢出?
x+y=11101111B+11001001B=10111000B=1B8H
11101111B
+ 11001001B
10111000B
①若为无符号数 ②若为带符号补码数
∵CF=1 ∴不正确 ∵CF=1,DF=1 OF=0∴不溢出
x+y=0B8H x+z=61H y+z=3BH z+v=0CCH
① 不正确 不正确 不正确 正确
② 不溢出 不溢出 不溢出 溢出
12.试计算下列二进制数为无符号数、原码、反码、补码、8421BCD码时分别代表的数值大小。
若为非8421BCD数时请指出。
(1)10001000B
无符号数:
27+23=136
原码:
-0001000=-8
反码:
-1110111=-119
补码:
-1111000=-120
8421BCD码:
88
(2)00101001B
无符号数:
25+23+20=41
原码:
41
反码:
41
补码:
41
8421BCD码:
29
(3)11001001B
无符号数:
27+26+23+20=201
原码:
-1001001=-73
反码:
-0110110=-54
补码:
-0110111=-55
8421BCD码:
非8421BCD码
(4)10010011B
无符号数:
27+24+21+20=147
原码:
-0010011=-19
反码:
-1101100=-108
补码:
-1101101=-109
8421BCD码:
93
第三章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,BX,CX,DX
(2)地址寄存器:
一般用来存放段内的偏移地址。
SP,BP,SI,DI
(3)段寄存器:
用于存放段地址.CS,DS,ES,SS
(4)控制寄存器,FLAGS,IP具体寄存器略。
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(StackPointer)称为堆栈指针寄存器。
在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。
BP(BasePointer)称为基址寄存器。
作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。
SI(SourceIndex)称为源变址寄存器。
SI存放源串在数据段内的偏移地址。
DI(DestinationIndex)称为目的变址寄存器。
DI存放目的串在附加数据段内的偏移地址。
(3)段寄存器:
用于存放段地址
CS(CodeSegment)称为代码段寄存器,用来存储程序当前使用的代码段的段地址。
CS的内容左移4位再加上指令指针寄存器IP的内容就是下一条要读取的指令在存储器中的物理地址。
DS(DataSegment)称为数据段寄存器,用来存放程序当前使用的数据段的段地址。
DS的内容左移4位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行