微型计算机原理 第二版习题答案(含第八章程序题)

  • 格式:doc
  • 大小:608.50 KB
  • 文档页数:28
第4章习题(A)
1.指出下列指令中源操作数的寻址方式。
(1)MOV BX,2000H;立即数寻址方式
(2)MOV BX,[2000H];直接寻址方式
(3)MOV BX,[SI];寄存器间接寻址方式
(4)MOV BX,[SI+2000H];寄存器相对寻址方式
(5)MOV [BX+SI],AL;寄存器寻址方式
(2)AL的高4位取反。
XOR AL,0F0H
(3)AL的高4位移到低4位,高4位清0。
MOV CL,4
SHR AL,CL
(4)AH的低4位移到高4位,低4位请0。
[43]补=00101011B[8]补=00001000B
C7=0C6=0OF=C7 C6=0无溢出,结果正确。
[43+8]补=00110011B
43+8=0110011B=33H=51
(3)60+90
60=3CH=0111100B90=5AH=1011010B
[60]补=0011 1100B[90]补=0101 1010B
最大正数是 ;最小负数是 。
(3)浮点原码整数表示时,最大浮点数是多少?最小浮点数是多少?
最大浮点正数是 ;
最小浮点负数是 。


第三章 补充
1.设当前栈顶指针SP的值为0300H,若执行了五次PUSH指令后又执行了两次POP指令,计算此时SP的值。
2.从地址39790H开始的8个连续的单元依次存放的数据是12H、34H、56H、78H、9AH、0ABH、0CDH、0EFH;寄存器的内容分别是(DS)=3879H,(SP)=3204H,(SS)=3659H,(CS)=3700H,(IP)= 003AH,
的数值大小。若为非8421BCD码数时请指出。
二进制数码无符号数原码反码补码8421BCD码
(1)10001000136-8-119-12088
(2)0010100141+41+41+4129
(3)11001001201-73-54-55非8421BCD码
(4)1001 0011147-19-108-10993
若 [X1]BCD=10001000则X1=88
(4)若10010011B为无符号数则X4=10010011B=9×16+3=147
若 [X4]原=1001 0011则X4=-001 0011B=-19
若 [X4]反=1001 0011则X4=-110 1100B=-(6×16+12)=-108
若 [X4]补=1001 0011则X4=-1101101B=-(6×16+13)=-109
(6)ADD BX,[BX+DI+80];基址变址相对寻址方式
(7)MULBL;寄存器寻址方式
(8)SUBAX,BX;寄存器寻址方式
2. 指出下列指令是否正确,若不正确请说明原因。
(1)MOV DS,0100H;不正确,立即数不能直接传送给段寄存器
(3)XCHG AH,AL;正确
(5)MOV BX,[BX];正确
(AL)=23H
OF=0,SF=0,ZF=0,AF=1,PF=0,CF=1
(4)MOV AL,7EH
SUB AL,95H;AL←7EH-95H=E9H
(AL)=E9H
OF=1,SF=1,ZF=0,AF=0,PF=0,CF=1
9. 选用最少的指令,实现下述要求的功能。
(1)AH的高4位情0。
AND AH,0FH
(1)X=-33
X=-33=-21H=-010 0001B
[X]补=1101 1111
(3)Z=-128=-10000000B
[Z]补=10000000 (可直接写出)
(或根据补码的定义[x]补=2n+x求解)
[Z]补=28-128=100000000B-10000000B=10000000B
[Z]补=28-128=256-128=128=1000 0000B
PUSH BX;SP=1FFEH-2=1FFCH
PUSH AX;SP=1FFCH + 2=1FFEH
执行程序段后,SP=1FFEH,(AX)=5000H,(BX)=5000H。
第4章习题(B)
8. 分别执行下列指令后,试求AL的内容及各各标志位的标志。
(1)MOV AL,19H
ADD AL,61H;AL←19H+61H=7AH
=39794H
其中的字=AB9AH
d)PA=(SS)*10H+3204H=36590H+3204H
=39794H
其中的双字=EFCDAB9AH
3.
1)3BH,SF、CF、OF、PF、AF、ZF分别为
0 0 1 0 1 0
2)CBH,SΒιβλιοθήκη 、CF、OF、PF、AF、ZF分别为
1 0 0 0 0 0
第3章习题
+ Y(逻辑异或),并且判断运算完成后SF、CF、OF、PF、ZF各标志位的状态。
第三章补充题
1. SP=0300H-2*5+2*2=02FAH
2.从地址39790H开始的8个连续的单元依次存放的数据是12H、34H、56H、78H、9AH、0ABH、0CDH、0EFH;寄存器的内容分别是(DS)=3879H,(SP)=3204H,(SS)=3659H,(CS)=3700H,(IP)= 003AH,
C7=0C6=1OF=C7 C6=1有溢出,结果错误。
(5)-33+(-37)
-33=-21H=-010 0001B-37=-25H=-010 0101B
[-33]补=1101 1111B[-37]补=1101 1011B
C7=1C6=1OF=C7 C6=0无溢出,结果正确。
[-33+(-37)]补=1011 1010B
PA=BA00H×10H+ A800H=C4800H
10. 简述堆栈指针寄存器SP的功能及堆栈的操作过程。
堆栈指针寄存器SP用于保存当前的栈顶地址,在执行进栈和出栈操作时,段地址由堆栈段寄存器SS提供,段内偏移地址由SP提供。每执行一次进栈操作,系统先自动将SP的内容减2,即(SP)=(SP)-2,然后将进栈内容压入偏移地址为(SP)和(SP)+1单元;每执行一次出栈操作,系统先自动将栈顶内容即偏移地址为(SP)和(SP)+1单元的内容弹出,然后将SP的内容加2,即(SP)=(SP)+2,使SP始终指向当前的栈顶地址。
-33+(-37)=-100 0110B=-46H=-70
(6)-90+(-70)
-90=-5AH=-101 1010B -70=-46H=-100 0110B
[-90]补=1010 0110B[-70]补=1011 1010B
C7=1 C6=0OF=C7 C6=1有溢出,结果错误。
12. 试计算下列二进制数为无符号数、原码、反码、补码、8421BCD码时分别代表
(7)MOV AX,[SI+DI];不正确,不能同时采用SI和DI
(9)AND AX,BL;不正确,源操作数与目的操作数的位数不一致
(11)ADD [SI] ,20H;不正确,未定义目的操作数的类型(字节或字)
(13)PUSH 2000H;不正确,PUSH指令的源操作数不能是立即数
(15)MOV SI,AL;不正确,源操作数与目的操作数的位数不一致
第2章习题
2. 将下列二进制数分别转换为十进制数和十六进制数。
(1)111010B
0011 1010B =3AH=3×16+10=58
(2)10111100.111B
10111100.1110B =BC.EH=11×16+12+14×16-1=188.875
6. 选取字长n为8位(和16位两种情况),求下列十进制数的补码。
若 n=16
则 Z=-128=-000 0000 1000 0000B
[Z]补= 1111 1111 1000 0000
(5)A=-65
A=-65=-41H=-1000001B
[A]补=10111111
(6)B=+65
B=+65=+41H=+1000001B
[B]补=01000001
(7)C=-96
(AL)=7AH
OF=0,SF=0,ZF=0,AF=0,PF=0,CF=0
(2)MOV AL,19H
SUB AL,61H;AL←19H-61H=B8H
(AL)=B8H
OF=0,SF=1,ZF=0,AF=0,PF=1,CF=1
(3)MOV AL,5DH
ADD AL,0C6H;AL←5DH+C6H=23H
(1)MOV [BX],AH
PA=(DS)×10H+(BX)
=30000H+2000H=32000H
(2)ADD AL,[BX+SI+1000H]
PA=(DS)×10H+(BX)+(SI)+1000H
=30000H+2000H+0100H+1000H=33100H
(3)MOV AL,[BX+SI]
PA=(DS)×10H+(BX)+(SI)
1)求下一条要取指令的物理地址。
2)求下列地址的内容分别是多少
a)数据段中偏移地址是1000H 的字
b)代码段中偏移地址是2792H 的字节
c)堆栈栈顶的字
d)堆栈段中偏移地址是3204H 的双字
3.设机器字长为8位,X=A7H,Y=6CH,1)计算X-Y,并且判断运算完成后S F、CF、OF、PF、AF、ZF各标志位的状态。2)计算 X