微机部分课后练习题.docx
- 文档编号:24736125
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:15
- 大小:170.15KB
微机部分课后练习题.docx
《微机部分课后练习题.docx》由会员分享,可在线阅读,更多相关《微机部分课后练习题.docx(15页珍藏版)》请在冰豆网上搜索。
微机部分课后练习题
第一章
1.3、将下列十进制数转换为八进制和十六进制数:
39,99.735,54.625,127,119。
[解]39→47Q→27H;99.735→123.5702Q→63.BC28H;54.625→66.5Q→36.AH
127→177Q→7FH;119→167Q→77H
1.4、将下列二进制数转换为十进制数:
111101.101B,100101.11B,10011001.001B,1100110.011B,11011010.1101B
[解]111101.101B→61.625;100101.11B→37.75;10011001.001B→153.125
1100110.011B→102.375;11011010.1101B→218.8125
1.5、完成下列转换:
(1)10110.10111B转换为十六进制数;
(2)34.97H转换为八进制数和十进制数;
(3)0BA.7FH转换为二进制数和八进制数;
(4)43.27Q转换为二进制数和十六进制数;
[解]
(1)10110.10111B→16.B8H;
(2)34.97H→64.456Q→52.59
(3)0BA.7FH→10111010.01111111B→272.376Q
(4)43.27Q→100011.010111B→23.5CH
1.6、设机器字长为8位,写出下列用真值表示的二进制数的原码、补码和反码:
+0010101,+1111111,+1000000,-0010101,-1111111,-1000000
[解]+0010101的原码、补码和反码均为00010101B;
+1111111的原码、补码和反码均为01111111B;
+1000000的原码、补码和反码均为01000000B;
-0010101的原码为10010101B,补码为11101011B,反码为11101010B;
-1111111的原码为11111111B,补码为10000001B,反码为10000000B;
-1000000的原码为11000000B,补码为11000000B,反码为10111111B。
1.7、设机器字长为8位,最高位为符号位,用二进制补码运算法则对下列各式进行运算:
(1)17+7;
(2)8+18;(3)9+(-7);(4)-26+6;(5)8-18;
(6)19-(-17);(7)-25-6;(8)87-15
[解]
(1)17+7
(2)8+18(3)9+(-7)
[17]补→00010001B[8]补→00001000B[9]补→00001001B
+)[7]补→00001111B+)[18]补→00010010B+)[-7]补→11111001B
00011000B→2400011010B→2600000010B→2
(4)-26+6(5)8-18(6)19-(-17)
[-26]补→11100110B[8]补→00001000B[19]补→00010011B
+)[6]补→00000110B+)[-18]补→11101110B+)[-(-17)]补→00010001B
11101100B→[-20]补11110110B→[-10]补00100100B→36
(7)-25-6;(8)87-15
[-25]补→11100111B[87]补→01010111B
+)[-6]补→11111010B+)[-15]补→11110001B
1┊11100001B→[-31]补1┊01001000B→72
1.8、已知下列各数均为二进制补码:
a=00110010B;b=01001010B;c=11101001B;d=10111010B。
试求:
(1)a+b;
(2)a+c;(3)c+b;(4)c+d;(5)a-b;(6)c-a;(7)d-c;(8)a+d-c;
(9)b+c-d;(10)d-c-a
[解]
(1)a+b=00110010B+01001010B=01111100B
(2)a+c=00110010B+11101001B=00011011B
(3)c+b=11101001B+01001010B=00110011B
(4)c+d=11101001B+10111010B=10100011B
(5)a-b=a+[-b]补=00110010B+10110110B=11101000B
(6)c-a=c+[-a]补=11101001B+11001110B=10110111B
(7)d-c=d+[-c]补=10111010B+00010111B=11010001B
(8)a+d-c=a+d+[-c]补=00110010B+10111010B+00010111B=00000011B
(9)b+c-d=b+c+[-d]补=01001010B+11101001B+01000110B=11111010B
(10)d-c-a=d+[-c]补+[-a]补=10111010B+00010111B+11001110B=10011111B
1.11、将下列十进制数变为8421BCD码:
(1)8609;
(2)5254;(3)2730;(4)1998
[解]
(1)8609→8609H或1000,0110,0000,1001B
(2)5254→5254H或0101,0010,0101,0100B
(3)27302730H或0010,0111,0011,0000B
(4)1998→1998H或0001,1001,1001,1000B
1.12、将下列8421BCD码表示成十进制数和二进制数:
(1)01111001;
(2)01010111;(3)10000011;(4)10011001
[解]
(1)01111001→79→01001111B
(2)01010111→57→00111001B
(3)10000011→83→01010011B
(4)10011001→99→01100011B
第二章
2-11画出下列各信息在8086系统存储器中的存储示意图,假设各信息存放的起始地址都为12340H。
(1)常数123
(2)字符串AB$09
(3)偏移地址2130H(4)逻辑地址1234H:
5678H
解:
(1)常数123:
123=7BH
(2)字符串AB$09:
AB$09的ASCII码为4142243039
(3)偏移地址2130H:
16位数据在内存中存放时,高8位存放在地址较大的单元,低8位放在地址较小的单元。
(4)逻辑地址1234H:
5678H:
32位的地址指针存放时,偏移地址存入地址较小的单元,段基值存入地址较大的单元。
2-15如果SS=2000H,SP=0100H,在从堆栈中弹出4个字节和压入10个字节后,SS和SP的值是多少?
此时栈顶的物理地址是多少?
答:
ss的地址是不会变的还是2000H
SP的地址相当于压入了6个字节SP=0100H-0006H=00FAH
物理地址200FAH
第三章
3-2判别下列指令是否有错,并说明理由;有错的加以改正:
(1)MOV[DI],[SI]
错,MOV指令中src和dst不能同时为存贮器寻址,应借助寄存器为桥梁。
改:
MOVAL,[SI]或:
MOVAX,[SI]
MOV[DI],ALMOV[DI],AX
(2)MOVCS,AX
错,CS不能做目的操作数。
不能用CS和IP做dst,CS和IP的内容只能了解不能改变。
(3)MUL-25
错,-25为有符号数,应用IMUL指令,此外,乘法指令中不能采用立即寻址。
乘数可以是R/M中的无符号数,但不能为立即数。
改:
MOVBL,-25
IMULBL
(4)MOV128,CL
错,目的操作数不能用立即寻址。
立即数不能做dst。
(5)MOVDS,CS
错,两个段寄存器之间不能直接进行数据传送。
不允许在段R之间直接传送信息。
改:
MOVAX,CS
MOVDS,AX
(6)ADDAX,[SI][DI]
错,SI和DI不能同时出现在一个操作数的寻址方式中。
基址变址寻址中BX和BP为基址R,SI和DI为变址R。
(7)PUSHFLAG
错,将标志寄存器F的内容推入堆栈,用专门的指令:
PUSHF(POPF)
(8)MOVAX,[AX]
错,寄存器间接寻址不能用AX寄存器。
AX不能作为间址R。
改:
MOVAX,[BX]
(9)MOVAX,BYTEPTR[SI]
错,操作数位数不匹配。
MOV指令操作数的类型要匹配。
改:
MOVAX,WORDPTR[SI]
或:
MOVAL,BYTEPTR[SI]
(10)MOVCL,AX
错,MOV指令操作数位数不匹配。
改:
MOVCX,AX
或:
MOVCL,AL
(11)OUTCX,AL
错,OUT指令中指令用DX提供端口地址。
使用短格式I/O指令时,先将端口地址赋给DX,而且只能赋给DX。
改:
OUTDX,AL
(12)MOVAX,DISP[BX][BP]
错,同一操作数的寻址方式中不能同时出现BX和BP。
基址变址寻址中的BX和BP为基址R,SI和DI为变址R。
(13)INAL,DX正确。
(14)LEABX,4[BX]正确。
(15)SARAX,5
错,移位次数不为1,不能直接在指令中写出。
移位一次的在指令中直接给出,移位n次的。
需预先将n送入CL中。
改:
MOVCL,5
SARAX,CL
3-3假设X和X+2单元的内容为双精度数P:
Y和Y+2单元的内容为双精度数Q(X、Y为低位字)。
下列程序段使当2P>Q时,AX=2;否则AX=1。
请把程序段填写完整。
解:
若P、Q为有符号数:
MOVDX,X+2
MOVAX,X
ADDAX,X
ADCDX,X+2
CMPDX,Y+2
(JG)L2
(JL)L1
CMPAX,Y
(JG)L2
L1:
MOVAX,1
JMPEXIT
L2:
MOVAX,2
EXIT:
HLT
若P、Q为无符号数:
MOVDX,X+2
MOVAX,X
ADDAX,X
ADCDX,X+2
CMPDX,Y+2
(JA)L2
(JB)L1
CMPAX,Y
(JA)L2
L1:
MOVAX,1
JMPEXIT
L2:
MOVAX,2
EXIT:
HLT
3-5写出下列程序段完成的数学计算公式,并画出数据存放的示意图。
MOVAX,X
MOVDX,X+2
ADDAX,Y
ADCDX,Y+2
SUBAX,Z
SBBDX,Z+2
MOVW,AX
MOVW+2,DX
答:
完成的数学计算公式:
X+Y-Z→W(X、Y、Z、W都是双字变量)
3-6设有100个字节数据(补码),存放在数据段中EA=2000H开始的存储区内,以下程序段应能从该数据区中找出最大的一个数并存入同一数据段EA=2100H的单元中,请完成该程序(在空白处填入适当的语句)
解:
MAX:
MOVBX,2000H
MOVAL,[BX]
MOVCX,0063H/99
L1:
INCBX
CMPAL,[BX]
JGEL2;(此处用JG也可以)
MOVAL,[BX]
L2:
DECCX
JNZL1
MOV[2100H],AL
3-8设AX=4235H,BX=06FAH,CX=0143H,DX=3105H,CF=1。
下列每条指令执行后的结果是什么?
CF、ZF、OF等标志位的值各等于多少?
解:
(1)MOVAX,BX;
(2)ADDAL,DH;
(3)ADCBX,CX;
(4)SUBAX,2710H;
(5)DECBX;
(6)NEGCX;
(7)INCBL;
(8)MULBX;
(9)DIVCL。
3-12已知AX=2508H,BX=0F36H,C=0004H,DX=1864H,求下列每条指令执行后的结果是什么?
标志位CF等于什么?
解:
(1)ANDAH,CL
(2)ORBL,30H
(3)NOTAX
(4)XORCX,0FFF0H
(5)TESTDH,OFH
(6)CMPCX,00H
(7)SHRDX,CL
(8)SARAL,1
(9)SHLBH,CL
(10)SALAX,1
(11)RCLBX,1
(12)RORDX,CL
3-16在如下列程序段的括号中分别填入以下指令:
(1)LOOPNEXT;
(2)LOOPENEXT;
(3)LOOPNENEXT。
试说明在这三种情况下,下列程序段执行完后,AX、BX、CX、DX寄存器的内容分别是什么。
START:
MOVAX,01H
MOVBX,02H
MOVDX,03H
MOVCX,04H
NEXT:
INCAX
ADDBX,AX
SHRDX,1
()
解:
第四章
4-1下边的程序是实现AX←AL*12的操作,请判断其中语句的正误并改正。
XORAX,AX
SALAX,2
MOVBX,AX
SALAX,1
ADCAX,BX
解:
XORAH,AH;对AX的高八位清零。
-------------------------------------------------------
MOVCL,2
SALAX,CL
------------------------------------------------------
MOVBX,AX
SALAX,1
ADCAX,BX
4-2对于给定的符号定义,指出下列指令的错误,并说明原因。
AEQU505
BDB?
CDB64H
(1)MOVA,AX
(2)MOVB,AX
(3)MOVAX,B
(4)CMPC,AX
(5)CMPA,C
(6)CMPAX,C
解:
4-22无
4-23无
4-24无
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 部分 课后 练习题