微型计算机原理 第二版习题答案含第八章程序题.docx
- 文档编号:11956377
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:37
- 大小:197.13KB
微型计算机原理 第二版习题答案含第八章程序题.docx
《微型计算机原理 第二版习题答案含第八章程序题.docx》由会员分享,可在线阅读,更多相关《微型计算机原理 第二版习题答案含第八章程序题.docx(37页珍藏版)》请在冰豆网上搜索。
微型计算机原理第二版习题答案含第八章程序题
第2章习题
2.将下列二进制数分别转换为十进制数和十六进制数。
(1)111010B
00111010B=3AH=3×16+10=58
(2)10111100.111B
10111100.1110B=BC.EH=11×16+12+14×16-1=188.875
6.选取字长n为8位(和16位两种情况),求下列十进制数的补码。
(1)X=-33
X=-33=-21H=-0100001B
[X]补=11011111
(3)Z=-128=-10000000B
[Z]补=10000000(可直接写出)
(或根据补码的定义[x]补=2n+x求解)
[Z]补=28-128=100000000B-10000000B=10000000B
[Z]补=28-128=256-128=128=10000000B
若n=16
则Z=-128=-000000010000000B
[Z]补=1111111110000000
(5)A=-65
A=-65=-41H=-1000001B
[A]补=10111111
(6)B=+65
B=+65=+41H=+1000001B
[B]补=01000001
(7)C=-96
C=-96=-60H=-1100000B
[C]补=10100000
(或根据补码的定义[x]补=2n+x求解)
[C]补=28-96=160=A0H=10100000B
8.设机器字长为8位,最高位为符号位,试对下列各式进行二进制补码运算,并判
断结果是否溢出。
(1)43+8
43=2BH=0101011B8=0001000B
[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]补=00111100B[90]补=01011010B
C7=0C6=1OF=C7
C6=1有溢出,结果错误。
(5)-33+(-37)
-33=-21H=-0100001B-37=-25H=-0100101B
[-33]补=11011111B[-37]补=11011011B
C7=1C6=1OF=C7
C6=0无溢出,结果正确。
[-33+(-37)]补=10111010B
-33+(-37)=-1000110B=-46H=-70
(6)-90+(-70)
-90=-5AH=-1011010B-70=-46H=-1000110B
[-90]补=10100110B[-70]补=10111010B
C7=1C6=0OF=C7
C6=1有溢出,结果错误。
12.试计算下列二进制数为无符号数、原码、反码、补码、8421BCD码时分别代表
的数值大小。
若为非8421BCD码数时请指出。
二进制数码无符号数原码反码补码8421BCD码
(1)10001000136-8-119-12088
(2)0010100141+41+41+4129
(3)11001001201-73-54-55非8421BCD码
(4)10010011147-19-108-10993
*
(1)若10001000B为无符号数则X1=10001000B=8×16+8=136
若[X1]原=10001000则X1=-0001000B=-8
若[X1]反=10001000则X1=-1110111B=-(7×16+7)=-119
若[X1]补=10001000则X1=-1111000B=-(7×16+8)=-120
若[X1]BCD=10001000则X1=88
(4)若10010011B为无符号数则X4=10010011B=9×16+3=147
若[X4]原=10010011则X4=-0010011B=-19
若[X4]反=10010011则X4=-1101100B=-(6×16+12)=-108
若[X4]补=10010011则X4=-1101101B=-(6×16+13)=-109
若[X4]BCD=10010011则X4=93
14.设机器字长为32位,定点表示时,符号位1位,数值位31位;浮点表示时,阶
符1位,阶码5位,数符1位,尾数25位。
(1)定点原码整数表示时,最大正数是多少?
最小负数是多少?
最大正数是
;最小负数是
。
(2)定点原码小数表示时,最大正数是多少?
最小负数是多少?
最大正数是
;最小负数是
。
(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,
1)求下一条要取指令的物理地址。
2)求下列地址的内容分别是多少
a)数据段中偏移地址是1000H的字
b)代码段中偏移地址是2792H的字节
c)堆栈栈顶的字
d)堆栈段中偏移地址是3204H的双字
3.设机器字长为8位,X=A7H,Y=6CH,1)计算X-Y,并且判断运算完成后SF、CF、OF、PF、AF、ZF各标志位的状态。
2)计算X
+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,
1)PA=(CS)*10H+(IP)=37000H+003AH
=3703AH
2)a)PA=(DS)*10H+1000H=38790H+1000H
=39790H
其中的字=3412H
b)PA=(CS)*10H+2792H=37000H+2792H
=39792H
其中的字节=56H
c)PA=(SS)*10H+(SP)=36590H+3204H
=39794H
其中的字=AB9AH
d)PA=(SS)*10H+3204H=36590H+3204H
=39794H
其中的双字=EFCDAB9AH
3.
1)3BH,SF、CF、OF、PF、AF、ZF分别为
001010
2)CBH,SF、CF、OF、PF、AF、ZF分别为
100000
第3章习题
5.8086/8088CPU的地址总线有多少位?
其寻址范围是多少?
8086/8088CPU的地址总线有20位,其寻址范围是220=1M个存储单元,即对应的物理地址为00000H~FFFFFH。
9.什么是逻辑地址?
什么是物理地址?
若已知逻辑地址为BA00H:
A800H,试求物理地址。
通过段地址和偏移地址来表示的存储单元的地址称为逻辑地址,记为:
段地址:
偏移地址。
CPU对存储器进行访问时实际寻址所使用的20位地址称为物理地址。
若已知逻辑地址为BA00H:
A800H,则物理地址为:
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始终指向当前的栈顶地址。
第4章习题(A)
1.指出下列指令中源操作数的寻址方式。
(1)MOVBX,2000H;立即数寻址方式
(2)MOVBX,[2000H];直接寻址方式
(3)MOVBX,[SI];寄存器间接寻址方式
(4)MOVBX,[SI+2000H];寄存器相对寻址方式
(5)MOV[BX+SI],AL;寄存器寻址方式
(6)ADDBX,[BX+DI+80];基址变址相对寻址方式
(7)MULBL;寄存器寻址方式
(8)SUBAX,BX;寄存器寻址方式
2.指出下列指令是否正确,若不正确请说明原因。
(1)MOVDS,0100H;不正确,立即数不能直接传送给段寄存器
(3)XCHGAH,AL;正确
(5)MOVBX,[BX];正确
(7)MOVAX,[SI+DI];不正确,不能同时采用SI和DI
(9)ANDAX,BL;不正确,源操作数与目的操作数的位数不一致
(11)ADD[SI],20H;不正确,未定义目的操作数的类型(字节或字)
(13)PUSH2000H;不正确,PUSH指令的源操作数不能是立即数
(15)MOVSI,AL;不正确,源操作数与目的操作数的位数不一致
(17)MOVCS,AX;不正确,代码段寄存器CS不能用于目的操作数
(19)OUTBX,AL;不正确,当端口地址大于FFH时,I/O指令中
只能用DX间接寻址。
(21)XCHGCX,DS;不正确,段寄存器的内容不能参加交换
3.写出下列指令中存储器操作数物理地址的计算表达式。
(1)MOVAL,[DI]
PA=(DS)×10H+(DI)
(2)MOVAX,[BX+SI]
PA=(DS)×10H+(BX)+(SI)
(3)MOV5[BX+DI],AL
PA=(DS)×10H+(BX)+(DI)+5
(4)ADDAL,ES:
[BX]
PA=(ES)×10H+(BX)
4.若(DS)=3000H,(BX)=2000H,(SI)=0100H。
(ES)=4000H,计算下列各指令中存储器操作数的物理地址。
(1)MOV[BX],AH
PA=(DS)×10H+(BX)
=30000H+2000H=32000H
(2)ADDAL,[BX+SI+1000H]
PA=(DS)×10H+(BX)+(SI)+1000H
=30000H+2000H+0100H+1000H=33100H
(3)MOVAL,[BX+SI]
PA=(DS)×10H+(BX)+(SI)
=30000H+2000H+0100H=32100H
(4)SUBAL,ES:
[BX]
PA=(ES)×10H+(BX)
=40000H+2000H=42000H
6.设(SP)=2000H,(AX)=3000H,(BX)=5000H,执行下列程序段后,问
SP=?
,(AX)=?
,(BX)=?
。
PUSHAX;SP=2000H-2=1FFEH
PUSHBX;SP=1FFEH-2=1FFCH
PUSHAX;SP=1FFCH+2=1FFEH
执行程序段后,SP=1FFEH,(AX)=5000H,(BX)=5000H。
第4章习题(B)
8.分别执行下列指令后,试求AL的内容及各各标志位的标志。
(1)MOVAL,19H
ADDAL,61H;AL←19H+61H=7AH
(AL)=7AH
OF=0,SF=0,ZF=0,AF=0,PF=0,CF=0
(2)MOVAL,19H
SUBAL,61H;AL←19H-61H=B8H
(AL)=B8H
OF=0,SF=1,ZF=0,AF=0,PF=1,CF=1
(3)MOVAL,5DH
ADDAL,0C6H;AL←5DH+C6H=23H
(AL)=23H
OF=0,SF=0,ZF=0,AF=1,PF=0,CF=1
(4)MOVAL,7EH
SUBAL,95H;AL←7EH-95H=E9H
(AL)=E9H
OF=1,SF=1,ZF=0,AF=0,PF=0,CF=1
9.选用最少的指令,实现下述要求的功能。
(1)AH的高4位情0。
ANDAH,0FH
(2)AL的高4位取反。
XORAL,0F0H
(3)AL的高4位移到低4位,高4位清0。
MOVCL,4
SHRAL,CL
(4)AH的低4位移到高4位,低4位请0。
MOVCL,4
SHLAH,CL
10.设(BX)=6D16H,(AX)=1100H,写出下列三条指令执行后,AX和BX寄存器的内容。
MOVCL,06H
ROLAX,CL;(AX)小循环左移6位
SHRBX,CL;(BX)逻辑右移6位
指令执行前:
(AX)=1100H=0001000100000000B
(BX)=6D16H=0110110100010110B
指令执行后:
(AX)=0100000000000100B=4004H
(BX)=0000000110110100B=01B4H
11.设初值(AX)=0119H,执行下列程序段后(AX)=?
MOVCH,AH;(CH)=01H
ADDAL,AH;(AL)=19H+01H=1AH
DAA;(AL)=1AH+06H=20H,CF=0
XCHGAL,CH;(AL)=01H,(CH)=20H
ADCAL,34H;(AL)=01H+34H+0=35H
DAA;(AL)=35H
MOVAH,AL;(AH)=35H,(AL)=35H
MOVAL,CH;(AL)=20H,(CH)=20H
执行程序段后(AX)=3520H
12.指出下列程序段的功能。
(1)MOVCX,10
CLD
LEASI,First
LEADI,Secend
REPMOVSB
将数据段中首地址为First的10个字节数据,传送到附加数据段首地址为Secend的10个字节单元中。
(2)CLD;清方向标志位DF,增地址传送
LEADI,[0404H];DI←0404H
MOVCX,0080H;CX←0080H=128
XORAX,AX;AX清零
REPSTOSW;送存128个字串
将附加数据段中首地址为0404H的128个字单元清零。
18.设(DS)=2000H。
(BX)=1256H,(SI)=528FH,偏移量TABLE=20A1H,
(232F7H)=3280H,(264E5H)=2450H,,试求执行下述指令后的结果。
(1)JMPBX;(IP)=1256H
(IP)=EA=(BX)=1256H
(2)JMPTABLE[BX];(IP)=3280H
EA=(BX)+TABLE=1256H+20A1H=32F7H
PA=(DS)×10H+EA=20000H+32F7H=232F7H
(IP)=(232F7H)=3280H
(3)JMP[BX][SI];(IP)=2450H
EA=(BX)+(SI)=1256H+528FH=64E5H
PA=(DS)×10H+EA=20000H+64E5H=264E5H
(IP)=(264E5H)=2450H
第4章习题(C)
9.选用最少的指令,实现下述要求的功能。
(1)AH的高4位情0。
ANDAH,0FH
(2)AL的高4位取反。
XORAL,0F0H
(3)AL的高4位移到低4位,高4位清0。
MOVCL,4
SHRAL,CL
(4)AH的低4位移到高4位,低4位请0。
MOVCL,4
SHLAH,CL
10.设(BX)=6D16H,(AX)=1100H,写出下列三条指令执行后,AX和BX寄存器的内容。
MOVCL,06H
ROLAX,CL;(AX)小循环左移6位
SHRBX,CL;(BX)逻辑右移6位
指令执行前:
(AX)=1100H=0001000100000000B
(BX)=6D16H=0110110100010110B
指令执行后:
(AX)=0100000000000100B=4004H
(BX)=0000000110110100B=01B4H
12.指出下列程序段的功能。
(1)MOVCX,10
CLD
LEASI,First
LEADI,Secend
REPMOVSB
将数据段中首地址为First的10个字节数据,传送到附加数据段首地址为Secend的10个字节单元中。
(2)CLD;清方向标志位DF,增地址传送
LEADI,[0404H];DI←0404H
MOVCX,0080H;CX←0080H=128
XORAX,AX;AX清零
REPSTOSW;送存128个字串
将附加数据段中首地址为0404H的128个字单元清零。
18.设(DS)=2000H。
(BX)=1256H,(SI)=528FH,偏移量TABLE=20A1H,
(232F7H)=3280H,(264E5H)=2450H,,试求执行下述指令后的结果。
(1)JMPBX;(IP)=1256H
(IP)=EA=(BX)=1256H
(2)JMPTABLE[BX];(IP)=3280H
EA=(BX)+TABLE=1256H+20A1H=32F7H
PA=(DS)×10H+EA=20000H+32F7H=232F7H
(IP)=(232F7H)=3280H
(3)JMP[BX][SI];(IP)=2450H
EA=(BX)+(SI)=1256H+528FH=64E5H
PA=(DS)×10H+EA=20000H+64E5H=264E5H
(IP)=(264E5H)=2450H
第5章习题(A)
3.有符号定义语句如下;
BUFFDB1,2,3,’123’
EBUFFDB0
LEQUEBUFF-BUFF;L=6
问L的值是少?
5.对于下面的数据定义,试说明三条MOV指令的执行结果。
TABLEADW10DUP(?
)
TABLEBDB10DUP(?
)
TABELCDB’1234’
MOVAX,LENGTHTABLEA;(AX)=10
MOVBL,LENGTHTABLEB;(BL)=10
MOVCL,LENGTHTABLEC;(CL)=1
6.对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?
FLDBDB?
TABLEADW20DUP(?
)
TABLEBDB’ABCD’
(1)MOVAX,TYPEFLDB;(AX)=1
(2)MOVAX,TYPETABLEA;(AX)=2
(3)MOVCX,LENGTHTABELA;(CX)=20
(4)MOVDX,SIZETABLEA;(DX)=40
(5)MOVCX,LENGTHTABLEB;(CX)=1
7.试说明下述指令中哪些需要加上PTR伪指令定义符:
BVALDB10H,20H
WVALDW1000H
(1)MOVAL,BVAL;不需要加PTR
(2)MOVDL,[BX];不需要加PTR
(3)SUB[BX],2;需要加PTR
例如:
SUBBYTEPTR[BX],2或SUB[BX],BYTEPTR2
SUBWORDPTR[BX],2或SUB[BX],WORDPTR2
(4)MOVCL,WVAL;需要加PTR
MOVCL,BYTEPTRWVAL
第5章习题(B)
20.编写程序,将字节变量BVAR中的压缩BCD数转换为二进制数,并存入原
变量中。
参考程序1
DATASEGMENT
BVARDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,BVAR
MOVDL,AL
MOVBL,0AH
MOVCL,4
SHRAL,CL
MULBL
ANDDL,0FH
ADDAL,DL
MOVBVAR,AL
INT03H
CODEENDS
ENDSTART
参考程序2
DATASEGMENT
BVARDB59H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,BVAR
MOVAH,0
MOVBL,16H
DIVBL;59/16→(AL)=03H、(AH)=0BH
MOVCL,4
SHLAL,CL;(AL)=30H
ADDAL,AH;(AL)=3BH=59
MOVBVAR,AL
INT03H
CODEENDS
ENDSTART
24.设有字无符号数X、Y,试编制Z=|X-Y|的程序。
参考程序1
DATASEGMENT
XDW?
YDW?
ZDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,X
MOVBX,Y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机原理 第二版习题答案含第八章程序题 微型计算机 原理 第二 习题 答案 第八 章程