微机原理习题解答.docx
- 文档编号:12061657
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:18
- 大小:23.19KB
微机原理习题解答.docx
《微机原理习题解答.docx》由会员分享,可在线阅读,更多相关《微机原理习题解答.docx(18页珍藏版)》请在冰豆网上搜索。
微机原理习题解答
3.1已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。
在以上给出的环境下,试问下列指令段之行后的结果如何?
(1)MOVCL,[BX+20H][SI];
物理地址=DS*10H+BX+SI+20H
=091D0H+0024H+0012H+0020H
=09226H
(09226H)=00F6H,(09226H)=F6H,(09227H)=00H
执行后:
CL=F6H
(2)MOV[BP][DI],CX
物理地址=SS*10H+BP+DI=1E4A0H+0024H+0032H=1E4F6H
CX=5678H
执行后:
(1E4F6H)=5678H
(2)LEABX,[BX+20H][SI]
;BX=BX+20H+SI=0056H
MOVAX,[BX+2];
物理地址=DS*10H+BX+2=091D0H+0058H=09228H
(09228H)=1E40H、
执行后:
AX=1E40H
(4)LDSSI,[BX][DI];
物理地址=DS*10H+BX+DI=091D0H+0056H=09226H
(09226H)=00F6H(09228H)=1E40H
执行后:
SI=(09226H)=00F6H
DS=(09228H)=1E40H
MOV[SI],BX
物理地址=DS*10H+SI=1E400H+00F6H=1E4F6H
BX=0024H,执行后:
(1E4F6H)=0024H
(5)XCHGCX,[BX+32H]
物理地址=DS*10H+BX+32H=091D0H+0056H=09226H
(09226H)=00F6H,CX=5678H
执行后:
(09226H)=5678H,CX=00F6H
XCHG[BX+20H][SI],AX
物理地址=DS*10H+BX+20H+SI=091D0H+0056H=09226H
(09226H)=5678H,AX=1234H
执行后:
(09226H)=1234H,AX=5678H
3.2设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,
CX=339AH,BP=1200H,SP=1350H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H。
下列各指令都在此环境下执行,在下列各小题的空格中填入相应个指令的执行结果。
(1)MOVAX,1352H;AX=1352H
(2)MOVAX,[1352H];AX=(DS*10H+1352H)=(11352H)
;AX=26FFH
(3)MOV0150H[BX],CH;物理地址=DS*10H+0150H+BX=11350H
(11350H)=33H,
(11351H)=3CH(不变)
(4)MOVAX,0150H[BP];物理地址=SS*10H+0150H+BP=21350H
AX=5188H
(5)POPAX;物理地址=SS*10H+SP=21350H
AX=5188H_,
SP=1352H_____
(6)ADD[SI],CX;物理地址=DS*10H+SI=11354H,(11354H)=E752H
E752H+339AH=1AECH=0001101011101100CF=1
(11354H)=_EC___,(11355H)=__1A__,
SF=__0__,ZF=__0__,PF=__1__,CF=__1__
OF=__0___
(7)SUBBH,0150H[BX][SI];
物理地址=DS*10H+0150H+BX+SI=126A4H,(126A4H)=9DH1001110101100011
BH=BH-9DH=BH+63H
00010010+01100011=01110101
BH=75H,SF=__0__,ZF=__0__,PF=_0___,CF=/0=1___,OF=_0___
00010010
-10011101
01110101CF=1
(8)INCBYTEPTR0152H[BX];
物理地址=DS*10H+0152H+BX=11352H,(11352H)=FFH
(11352H)=__00H___,(11353H)=__26H___,
CF=__不变___
(9)INCWORDPTR0152H[BX]
物理地址=DS*10H+0152H+BX=11352H,(11352H)=FFH
(11353H)=26H
(11352H)=__00H___,(11353H)=__27H___,CF=_不变___
(10)SARBYTEPTR0150H[BX],1
物理地址=DS*10H+0150H+BX=11350H,(11350H)=A5H
10100101
11010010CF=1
(11350H)=_D2H____,CF=_1_,OF=__1___
(12)SALBYTEPTR0150H[BX],1
物理地址=DS*10H+0150H+BX=11350H,(11350H)=A5H
10100101
01001010CF=1
(11350H)=__4AH___,CF=_1__,OF=__0__
3.3设下列各转移指令的第一字节在内存中的地址为CS=2000H和IP=016EH,且环境均为;2000:
016EJMPDS=6000H,BX=16C0H,
(616C0H)=46H,
(616C1H)=01H,(616C2H)=00H,
(616C3H)=30H,(61732H)=70H,(61733H)=17H。
写出下列各无条件转移指令执行后CS和IP值。
各指令左手的16进制编码是该指令的机器码。
指令中的目的地址用相应的编号表示。
(1)EBE7JMPSHORTAGAIN
SHORT----段内短转,11100111
IP=IP+E7=0170H+FFE7H=0157H
(2)E90016JMPNEARPTROTHER
NEAR----段内近转,
IP=IP+1600H=0171H+1600H=1771H
(3)E3JMPBX
寄存器间接转(段内)----IP=BX=16C0H
(4)EA46010030JMPFARPROB
段间直接转移--IP=0146H,CS=3000H
(5)FF677200
JMPWORDPTR0072H[BX]
段内存储器间接转移:
物理地址=DS*10H+0072H+BX=60000H+0072H+16C0H=61732H
(61732H)=70H,(61733H)=17H
IP=(61732H)=1770H
(6)FFEBJMPDWORDPTR[BX]
物理地址=DS*10H+BX
=60000H+16C0H=616C0H
(616C0H)=46H,,(616C1H)=01H,(616C2H)=00H,(616C3H)=30H
IP=(616C0H)=0146H,CS=3000H
3.4阅读下列各小题的指令序列,在后面空格中填入该指令序列的执行结果。
(1)MOVBL,85H;BL=85H
MOVAL,17H;AL=17H
ADDAL,BL;AL=9CH9C+06=A2+60=02
DAA;AL=02H
AL=__02H__,BL=_85H___,CF=__1___
(2)MOVAX,BX;AX=BX(=0001)
NOTAX;AX=BX(=1110)
ADDAX,BX;AX=BX+BX=FFFFHCF=0
INCAX;AX=0
AX=0,CF=0
(3)MOVAX,0FF60H;AX=FF60H
STC;CF=1
MOVDX,96;DX=0060H
XORDH,0FFH;
DH=FFH,DX=FF60H,CF=0
SBBAX,DX;AX=0000H,CF=0
AX=0000H,CF=0
(4)MOVBX,0FFFEH;BX=FFFEH
MOVCL,2;CL=21110
SARBX,CL;BX=FFFFH
BX=FFFFH,CF=1
3.5阅读分析下列指令序列
ADDAX,BX
JNOL1
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPL5
若AX和BX的初始值分别如下列五种情况所示,则执行该指令序列后,程序将分别转向何处执行(注:
即写出转移去的目的地址L1~L5中的一个)
(1)AX=14C6H,BX=80DCH
ADDAX,BX;
AX=14C6H+80DCH=95A2H
OF=0,CF=0
JNOL1;OF=0,转L1
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPL5
(2)AX=0B568H,BX=54B7H
ADDAX,BX;
AX=B568H+54B7H=0A1FH,OF=0,CF=1
JNOL1;OF=0,转L1
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPL5
(3)AX=42C8H,BX=608DH
ADDAX,BX;
AX=42C8H+608DH=A355H,OF=1,CF=0
JNOL1;OF=1,不转L1
JNCL2;CF=0.转L2
SUBAX,BX
JNCL3
JNOL4
JMPL5
(4)AX=0D023H,BX=9FD0H
ADDAX,BX;
AX=D023H+9FD0H=6FF3H,OF=1,CF=1
JNOL1;OF=1,不转L1
JNCL2;CF=1.不转L2
SUBAX,BX;
AX=6FF3H-9FD0H=D023H,OF=1,CF=1
JNCL3;CF=1.不转L3
JNOL4;OF=1.不转L4
JMPL5;转L5
(5)AX=9FD0H,BX=0D023H
ADDAX,BX
AX=9FD0H+D023H=6FF3H,OF=1,CF=1
JNOL1;OF=1,不转L1
JNCL2;CF=1.不转L2
SUBAX,BX;
AX=6FF3H-D023H=9FD0H,OF=1,CF=1,SF=1
JSL3;SF=1.转L3
JNOL4;OF=1.不转L4
JMPL5;转L5
3.6ANDAL,AL
JZBRCH1
RCRAL,1
JZBRCH2
RCLAL,1
INCAL
JZBRCH3
…
上书程序运行后,试回答:
(1)当(AL)=0时,程序转向BRCH1
ANDAL,AL;AL=0,ZF=1
JZBRCH1;ZF=1,转BRCH1
RCRAL,1
JZBRCH2
RCLAL,1
INCAL
JZBRCH3
(2)当(AL)=01时,程序转向BRCH2
ANDAL,AL;AL=01H,ZF=0,CF=0
JZBRCH1;ZF=0,不转BRCH1
RCRAL,1;AL=0,ZF=1
JZBRCH2;ZF=1,转BRCH2
RCLAL,1
INCAL
JZBRCH3
(3)当(AL)=FFH时,程序转向BRCH3
ANDAL,AL;AL=FFH,ZF=0,CF=0
JZBRCH1;ZF=0,不
转BRCH1
RCRAL,1;AL=7FH,ZF=0,CF=1
11111111
01111111CF=1
JZBRCH2;ZF=0,不转BRCH2
RCLAL,1;AL=FFH
01111111CF=1
11111111CF=0
INCAL;AL=0,ZF=1
JZBRCH3;ZF=1,转BRCH3
3.7完成下列操作,选用什么指令:
(1)将AX的内容减去0520H,和上次运算的借位;
SBBAX,0520H
(2)将变量名TABL的段地址送AX。
MOVAX,SEGTABL
3.8D1DB20HDUP(?
)
D2DWD1
请写出用一条指令实现取D1的偏移地址SI中的三种方法。
1、MOVSI,OFFSETD1
2、LEASI,D1
3、MOVSI,[D2]
3.9程序段1程序段2
MOVAX,147BHMOVAX,99D8H
MOVBX,80DCHMOVBX,9847H
ADDAX,BXSUBAX,BX
JNOL1JNCL3
JNCL2JNOL4
上述两个程序段执行后,分别转移到哪里?
程序段1
MOVAX,147BH;AX=147BH
MOVBX,80DCH;BX=80DCH
ADDAX,BX;
AX=147BH+80DCH=9557H,OF=0,CF=0
JNOL1;OF=0,转L1
JNCL2
程序段2
MOVAX,99D8H;AX=99D8H;
MOVBX,9847H;BX=9847H
SUBAX,BX;AX=0191H,CF=0,OF=0
JNCL3;CF=0,转L3
JNOL4
3.10MOVBX,0FFH;BX=00FFH
ANDBX,0FFFH;BX=00FFH
ORBX,0F0FH;BX=0FFFH
XORBX,00FFH;BX=0F00H
上述程序段运行后,BX=0F00H,CF=0
3.11CMPAX,BX;AX-BX;
JGENEXT;AX≥BX,转NEXT(AX为大数)
XCHGAX,BX;AX<BX,AX←BX(AX为大数)
NEXT:
CMPAX,CX;AX-CX
JGEDONE;AX≥CX,转DONE(AX为大数)
XCHGAX,CX;AX<CX,AX←CX(AX为大数)
DONE:
….
试回答:
(1)上述程序段执行后,原有AX、BX、CX中最大数存放在哪个寄存器中?
AX
(2)这3个数是带符号数还是无符号数?
带符号数
4.1画出下列语句中的数据在存储器中的存储情况。
ARRAYBDB63,63H,‘ABCD’,3DUP(?
),2DUP(1,3)
ARRAYWDW1234H,5,‘AB’,‘CD’,?
2DUP(1,3)
ARRAYB
3FH
ARRAYW
34H
63H
12H
41H
05H
42H
00H
43H
42H
44H
41H
--
44H
--
43H
--
--
01
--
03
01
01
00
03
03
00
01
00
03
00
4.2程序中数据定义如下:
DATA1DW?
DATA2DB32DUP(?
)
DATA3DD?
DLENGTHEQU$-DATA1;DLENGTH=38
此时DLENGTH的值是多少?
4.3程序中数据定义如下:
ARRAYDB‘ABCDEF’
RESULTDB?
TABLEDW20DUP(?
)
则执行指令
MOVAX,TYPERESULT后,AX=?
1
MOVBX,TYPETABLE后,BX=?
2
MOVCX,LENGTHTABLE后,CX=?
20
MOVDX,LENGTHARRAY后,DX=?
1
MOVSI,SIZETABLE后,SI=?
40
MOVDI,SIZEARRAY后,DI=?
1?
4.4指令ANDAX,7315HAND0FFH中,两个AND有什么差别?
这两个AND操作分别在什么时候执行?
7315HAND0FFH为逻辑运算符,在汇编时执行,结果为0015H
ANDAX,0015H为机器指令,在程序运行时才执行。
4.5设BX=1034H,则执行下列指令
MOVAX,BXAND0FFH;AX=0034H
MOVCX,BXEQ1234H;CX=0
后,AX和CX各为多少?
若BX=1234H,则结果如何?
若BX=1234H
MOVAX,BXAND0FFH;AX=0034H
MOVCX,BXEQ1234H;CX=FFFFH
4.6设已知语句为:
ORG0024H+0+1+2+3+4
DATA1DW4,12H,$+4;040012002C00
则执行指令MOVAX,DATA1+4后AX的值是多少?
AX=002CH
4.7已知数据定义语句为:
BUFFERDB16DUP(0,2DUP
(1));000101000101……
则其中字数据单元内容为0100H的单元数是多少?
00010100010100010100010100010100010100010100010100010100010100010100010100010100010100010100010116个
0001010001010001010001010001010001010001010001010001010001010001010001010001010001010001010001018个
4.8要在以为首址的数据区中依次存放下列数据;
‘A’,‘B’,0,0,‘C’,‘D’,0,0
请分别用DB、DW和DD语句实现。
DATA1DB‘A’,‘B’,0,0,‘C’,‘D’,0,0
DATA2DW‘BA’,0,‘DC’,0
DATA3DD‘BA’,‘DC’
4.9试按下列要求在数据段中依次书写各数据定义语句;
(1)以DA1为首字节的连续存储单元中存放20H个重复的数据序列:
2、3、10个4、1个7。
DA1DB20HDUP(2,3,10DUP(4),7)
(2)DA2为字符串变量,用字变量(DW)设置一字符串;‘STUDENTS’(按此顺序存放在各单元中)。
DA2DW‘TS’,‘DU’,‘NE’,‘ST’
(3)用等值语句给符号COUNT赋值以DA1为首址的数据区共占有的字节数,此等值语句必须放在最后一语句。
DA1DB………
COUNTEQU$-DA1
4.10下面程序段是实现从键盘输入十个一位10进数后累加,最后累加和以非压缩BCD码形式存放在AH(高位)和AL(低位)中。
试把程序段中所空缺的指令填上。
XORBX,BX;BX=0(BH=0,BL=0)
MOVCX,10
LOP;MOVAH,01H;键盘字符输入
INT21H
MOVAH,BH;AH=BH
ADDAL,BL;累加(ASCII)
AAA
MOVBX,AX
LOOPLOP
4.11下面程序段的功能是把数据区的数转换为对应的ASCII码,试完善本程序段。
DA1DB00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
ASCIDB10DUP(?
)
CUNT=ASCI-DAI
LEASI,DA1
LEADI,ADCI
MOVCX,CUNT
LOP1:
MOVAL,[SI]
ADDAL,30H
MOV[DI],AL
INCSI
INCDI
LOOPLOP1
4.12BUFF‘ABD$QC%$A…XYZ’
CONTEQU$-BUFF
…..
CLD
LEADI,BUFF
MOVCX,CONT
MOVAL,‘$’
XORDX,DX
NEXT:
REPNZSCASB
CMPCX,0
JZK1;CX=0,转
INCDX;DX=2($的个数)
JMPNEXT
K1:
…..
上述程序段运行后,DX中的值表示的意义是什么?
4.13设A,B是长度为10的字节数组,用串操作指令编写程序实现AB两数组内容的相互交换,试完善本程序。
DATASEGMENT
ADB1,2,3,4,5,6,7,8,9,0AH
DRG0010H
BDB0AH,9,8,7,6,5,4,3,2,1
DATAENDS
….
LEASI,A
LEADI,B
MOVCX,10
LOP:
LODSB;AL←[DS:
SI],SI←SI+1
XCHGAL,[DI]
XCHGSI,DI;SI指向B,DI指向A
DECDI
STOSB;[ES:
DI]←AL,DI←DI+1
XCHGSI,DI;SI指向A,DI指向B
INCDI
LOOPLOP
4.14现有一子程序:
SUB1PROC
TESTAL,80H
JEPLUS;AL为正,转PLUS
TESTBL,80H;AL为负
JNEEXITO;BL为负,转EXITO
JMPXCHANGE;BL为正,转XCHANGE
PLUS:
TESTBL,80H;AL为正,测BL
JEEXITO;BL为正,转EXITO
XCHANGE:
XCHGAL,BL;BL为负,AL为正,AL与BL交换
;BL为正,AL为负,AL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 习题 解答