汇编语言习题.docx
- 文档编号:12854984
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:16
- 大小:21.18KB
汇编语言习题.docx
《汇编语言习题.docx》由会员分享,可在线阅读,更多相关《汇编语言习题.docx(16页珍藏版)》请在冰点文库上搜索。
汇编语言习题
汇编语言习题
一、单项选择题
1.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是()。
A、名字项 B、操作项 C、操作数项 D、注释项
2.在汇编语言程序中,对END语句的叙述正确的是()。
A、是一可执行语句B、表示程序执行到此结束
C、表示源程序到此结束D、在汇编后要产生机器码
3.汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是()
A、VariableB、First&ldC、0FFFFHD、'Memphis'
4.用一条指令仅实现将BX+SI=>AX的方法是()
A、XCHGAX,[BX][SI]B、MOVAX,[BX+SI]C、LEAAX,BX[SI]D、LEAAX,[BX][SI]
5.设SP初值为2000H,执行指令"PUSHAX"后,SP的值是()
A、1FFFHB、1998HC、2002HD、1FFEH
6.条件转移指令JC产生程序转移的条件是()
A、CF=1B、CF=0C、CF=1和ZF=1D、CF=1和ZF=0
7.选用串操作指令时,错误的操作是()
A、置方向标志位B、根据串操作指令设置重复次数并送入CX
C、设置源操作数及目的操作数指针D、源操作数和目的操作数都可以加段超越
8.设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1。
执行SBBAL,[SI]后,正确的结果是()
A、AL=5FHSF=1CF=1B、AL=60HSF=1CF=0C、AL=5FHSF=0CF=1D、AL=60HSF=0CF=0
9.设AX=1000H,执行NOTAX指令后,正确的结果是()
A、AX=1001HB、AX=0EFFHC、AX=1000HD、AX=0111H
10.设DS=8225H,DI=3942H,指令NEGBYTEPTR[DI]操作数的物理地址是()
A、85B92H B、86192H C、BB690H D、12169H
11.可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是()
A、AX,BX,CX,DXB、DS,ES,CS,SSC、SP,BP,IP,BXD、SI,DI,BP,BX
12.循环指令LOOPNZ终止循环的条件是()。
A、CX=0,且ZF=0 B、CX=0,或ZF=1 C、CX10,且ZF=0 D、CX10,或ZF=1
13.设AH=0,AL=06H,BL=09H,执行指令
ADDAL,BL
AAA之后,其结果应是()。
A、AH=01,AL=05B、AH=1AL=15C、AH=0AL=0FHD、AH=0AL=05
14.下面的数据传送指令中,错误的操作是()。
A、MOVSS:
[BX+DI],1000HB、MOVDX,1000H
C、MOVWORDPTR[BX],1000HD、MOVDS,2000H
15.DA1EQUBYTEPTRDA2
DA2DW0ABCDH
┇
SHLDA1,1
SHRDA2,1
上述指令序列执行后,DA2字存储单元的内容是()
A、0ABCDHB、0AB9AHC、55CDHD、559AH
16.下面语句中有语法错误的语句是()
A、MOVCS,AX B、MOVDS,AX C、MOVSS,AX D、MOVES,AX
17.下面指令执行后,改变AL寄存器内容的指令是()。
A、TESTAL,02H B、ORAL,AL C、CMPAL,BL D、ANDAL,BL
18.执行下列指令序列后,正确的结果是()
MOVAL,81H
ADDAL,AL
ADCAL,AL
A、AL=05HB、AL=204HC、AL=04HD、AL=205H
19.与MOVBX,OFFSETVAR指令完全等效的指令是()。
A、MOVBX,VAR B、LDSBX,VAR C、LESBX,VAR D、LEABX,VAR
20.下面指令执行后,变量DAB中的内容是()。
DAWDW2A05H
DABDB0FAH
:
MOVAL,BYTEPRTDAW
SUBDAB,AL
A、0DAHB、0FAHC、0F5HD、0D0H
1.汇编语言源程序中,每个语句由四项组成,其中可省略而肯定不影响结果的项是()。
A、名字项 B、操作项 C、操作数项 D、注释项
2.在汇编语言程序中,对HLT语句的叙述正确的是()。
A、是一可执行语句B、表示程序执行到此结束
C、表示源程序到此结束D、在汇编后不产生机器码
3.汇编语言源程序中,其中名字项是一个符号,下面列出的有效名字是()
A、ibmpcB、First&ldC、0FFFFHD、'Memphis'
4.用一条指令仅实现将BX+SI=>AX的方法是()
A、XCHGAX,[BX][SI]B、MOVAX,[BX+SI]C、LEAAX,BX[SI]D、MOVAX,OFFSET[BX][SI]
5.设SP初值为2000H,执行指令"POPAX"后,SP的值是()
A、1FFFHB、1998HC、2002HD、1FFEH
6.条件转移指令JNC产生程序转移的条件是()
A、CF=1B、CF=0C、CF=1和ZF=1D、CF=1和ZF=0
7.选用串操作指令时,错误的操作是()
A、置方向标志位B、根据串操作指令设置重复次数并送入CX
C、设置源操作数及目的操作数指针D、源操作数和目的操作数都可以加段超越
8.设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1。
执行ADCAL,[SI]后,正确的结果是()
A、AL=0E0HSF=1CF=1B、AL=0E1HSF=1CF=0C、AL=5FHSF=0CF=1D、AL=60HSF=0CF=0
9.设AX=1H,执行NOTAX指令后,正确的结果是()
A、AX=0FFFEHB、AX=0EFFHC、AX=1000HD、AX=0111H
10.设DS=8225H,DI=3942H,指令NEGBYTEPTR[DI]操作数的物理地址是()
A、12169H B、86192H C、BB690H D、85B92H
11.可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是()
A、AX,BX,CX,DXB、SI,DI,BP,BXC、SP,BP,IP,BXD、DS,ES,CS,SS
12.循环指令LOOPNE终止循环的条件是()。
A、CX=0,且ZF=0 B、CX=0,或ZF=1 C、CX=0,且ZF=1 D、CX=0,或ZF=0
13.设AH=0,AL=06H,BL=09H,执行指令
ADDAL,BL
AAA之后,其结果应是()。
A、AH=0AL=05B、AH=1AL=15C、AH=0AL=0FHD、AH=01,AL=05
14.下面的数据传送指令中,错误的操作是()。
A、MOVSS:
[BX+DI],1000HB、MOVSS,2000H
C、MOVWORDPTR[BX],1000HD、MOVDX,1000H
15.DA1EQUBYTEPTRDA2
DA2DW0ABCDH
┇
SHLDA1,1
SHRDA2,1
上述指令序列执行后,DA2字存储单元的内容是()
A、0ABCDHB、0AB9AHC、55CDHD、559AH
16.下面语句中有语法错误的语句是()
A、MOVSS,AX B、MOVDS,AX C、MOVCS,AX D、MOVES,AX
17.下面指令执行后,不改变AL寄存器内容的指令是()。
A、NOTAX B、ORAL,AL C、XORAL,AL D、ANDAL,BL
18.执行下列指令序列后,正确的结果是()
MOVAL,81H
ADDAL,AL
ADCAL,AL
A、AL=04HB、AL=204HC、AL=05HD、AL=205H
19.与LEABX,VAR指令完全等效的指令是()。
A、MOVBX,VAR B、LDSBX,VAR C、LESBX,VAR D、 MOVBX,OFFSETVAR
20.下面指令执行后,变量DAB中的内容是()。
DAWDW2A05H
DABDB0FAH
:
MOVAL,BYTEPRTDAW
ADDDAB,AL
A、0FFHB、0FAHC、0F5HD、0D0H
二、简答题
1.给出下列2条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:
xorax,ax;
notax;
2.选用NOT,AND,ORXOR逻辑指令编写一指令序列,实现将AL第0位置1,
第7位置0,其他位变反。
3.判断下列程序段跳转的条件
(1)testal,10000001b
jnzthere
(2)cmpcx,64h
jbthere
4.有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完
成DX.AX←buffer1-buffer2功能。
5.编写一个程序段,在DX高4位全为0时,使AX=0;否则使AX=-1。
(一)已知DS=2000H,ES=3100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据段中变量名VAL的偏移地址值为0080H,试指出下列指令源操作数的寻址方式是什么?
其物理地址值是多少?
⑴MOVAX,ES:
[BP]⑵MOVAX,[BX][SI]⑶MOVAX,VAL[BP]
⑷MOVAX,[BX+VAL]⑸MOVAX,[BX+SI+10]
(二)指出下列标志位的含义
(1)CF
(2)OF(3)AF(4)ZF(5)DF
三、程序分析题
1.ADW1234H
BDW5678H
:
PUSHA
PUSHB
POPA
POPB
试回答:
A、上述程序段执行后(A)=_________,(B)=_________
B、设执行前SP=2000H,执行后SP=____________
2.MOVAX,1234H
MOVBX,5678H
XORAX,BX
XORAX,BX
上述程序段运行后,AX=___________________,ZF=____________________
3.DATASEGMENT
ORG3040H
YY1DB30H,40H
YY2DW3040H
DATAENDS
┇
MOVBX,OFFSETYY1
MOVAX,[BX]
MOVCL,BYTEPTRYY2
MOVCH,BYTEPTRYY2+1
上述程序段运行后,AX=_____________,BX=_______________,CX=_______________
4.ADB0F8H
BDB3DUP(?
)
┇
LEADI,B
MOVCX,3
MOVAL,A
LOP:
SARAL,1
MOV[DI],AL
INCDI
LOOPLOP
上述程序段运行后,从B单元开始依次存放的数据
5下面程序段完成的功能是什么?
MOVSI,OFFSETARRAY
MOVCX,100
AGAIN:
DECBYTEPTR[SI]
INCSI
LOOPAGAIN
6.MOVCL,8
MOVAL,0
NOTAL
ROLAL,CL
CMPAL,0FFH
JZNEXT
MOVAL,0
NEXT:
……
上述程序段运行后,AL=__________________,CF=___________________
1.ADW3412H
BDW7856H
:
PUSHA
PUSHB
POPA
POPA
试回答:
上述程序段执行后(A)=_,(B)=_B、设执行前SP=1000H,执行后SP=_
2.MOVAX,1234H
MOVBX,5678H
XORAX,AX
XORAX,BX
上述程序段运行后,AX=______,ZF=_________SF=
3.DATASEGMENT
ORG1234H
YY1DB12H,34H
YY2DW1234H
DATAENDS
┇
MOVBX,OFFSETYY1
MOVAX,[BX]
MOVCL,BYTEPTRYY2
MOVCH,BYTEPTRYY2+1
上述程序段运行后,AX=___________,BX=____________,CX=__________
4.下面程序段完成的功能是什么?
moval,bufX
cmpal,bufY
jgedone
moval,bufY
done:
movbufZ,al
5下面程序段完成的功能是什么?
cmpbufX,0
jlnext
movsignX,0
jmpdone
next:
movsignX,-1
done:
6、下面程序段完成的功能是什么?
movdl,’2’
movax,bufX
cmpax,bufY
jenext1
decdl
next1:
cmpax,bufZ
jenext2
decdl
next2:
movah,2
int21h
四、程序填空题(下列各小题中,一个横线上只能填一条指令。
每小题6分,共12分)
1.DA1数据区中有50个字节数据,下面程序段将每个数据的低四位不变,高四位变反,并依次存入DA2数据区中。
请将程序补充完
整。
MOVCX,50
LEASI,DA1
LEADI,DA2
K1:
MOVAL,[SI]
____________
MOV[DI],AL
INCSI
INCDI
DECCX
_____________
2.下面程序段完成将存储单元A1中一个压缩型BCD码拆成二个非压缩型BCD码,高位BCD码存放在A3单元,低位BCD码存放在A2单元,
再分别转换为对应的ASCⅡ码。
请将程序补充完整。
MOVAL,A1
MOVCL,4
__________
ORAL,30H
MOVA3,AL
MOVAL,A1
__________
ORAL,30H
MOVA2,AL
1.DA1数据区中有50个字节数据,下面程序段将每个数据的四位不变,低高四位变反,并依次存入DA2数据区中。
请将程序补充完整。
MOVCX,50
LEASI,DA1
LEADI,DA2
K1:
MOVAL,[SI]
____________
MOV[DI],AL
INCSI
INCDI
_____________
2.AAD指令是用于除法指令之前,进行非压缩BCD码调整的。
实际上,处理器的调整过程是:
AL←AH×10+AL,AH←0。
如果指令系统没有AAD指令,可用下面子程序完成这个调整工作。
aadpproc
pushbx
movbl,ah
shlah,1
shlah,1
addbl,ah
movah,0
popbx
ret
aadpendp
五、编制程序题
编写一个程序段:
先提示输入数字“InputNumber:
0~9”,然后在下一行显示输入的数字,结束;如果不是键入了0~9数字,就提示错误“Error!
”,继续等待输入数字。
汇编语言参考答案
一、单项选择题
1、B2、C3、A4、D5、D
6、A7、D8、C9、B10、A
11、D12、B13、A14、D15、C
16、A17、D18、A19、D20、C
1、D2、A3、A4、D5、C
6、B7、D8、B9、A10、D
11、B12、B13、D14、B15、C
16、C17、B18、C19、D20、A
二、简答题
1.给出下列2条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:
xorax,ax;AX=0000H01001
notax;AX=FFFFH01001
2.NOTAL
ORAL,1
ANDAL,7FH
3.
(1)AL的D0或D7至少有一位为1
(2)CX(无符号数)<64h
4.movax,wordptrbuffer1
subax,wordptrbuffer2;先减低16位
movdx,wordptrbuffer1+2
sbbdx,wordptrbuffer2+2;后减高16位,需减低16位的借位
5.testdx,0f000h;testdh,0f0h
jznext;jnznext
movax,-1;movax,0
jmpagain
next:
movax,0;movax,0ffffh
again:
...
寻址方式物理地址
⑴基址寻址31010H
⑵基址变址寻址201A0H
⑶相对基址寻址15090H
⑷相对基址寻址20180H
⑸相对基址变址寻址201B0H
(二)
(1)进位标志。
若运算结果的最高位产生一个进位或借位,则CF=1,否则CF=0。
(2)溢出标志。
若在算术运算中带符号数的运算结果,当字节运算时大于+127或小于-128;字运算时大于+32767或小于-32768,则OF=1,否则OF=0。
(3)辅助进位标志。
若在字节操作时,由低半字节向高半字节有进位或借位;或在字操作时,由低位字节向高位字节有进位或借位,则AF=1,否则AF=0。
(4)零标志。
若运算结果为0,则ZF=1,否则ZF=0。
(5)方向标志。
若用指令置DF=1,则串操作指令就为自动减量指令,也就是从高地址向低地址处理串;若DF=0,则串操作指令就为自动增量指令,也就是从低地址向高地址处理串。
三、程序分析题
1.A、上述程序段执行后(A)=5678H,(B)=1234HB、执行后SP=2000H
2.AX=1234HZF=0
3.AX=3040HBX=3040HCX=3040H
4.0FCH0FEH0FFH
5.有一个100个字节元素的数组,其首地址为ARRAY,将每个元素减1存于原处。
6.AL=0FFHCF=1
1.A、上述程序段执行后(A)=3412H,(B)=7856HB、执行后SP=1000H
2.AX=5678HZF=0SF=0
3.AX=3412HBX=1234HCX=1234H
4.把变量bufX,bufY较大者存入bufZ,若相等则任存其一。
5.把变量bufX的符号状态存入signX。
6.若bufX、bufY、bufZ都不等、两个相等、都相等,对应显示0,1,2
四、程序填空题
1.XORAL,0F0HJNZK1
2.SHRAL,CLANDAL,0FH
1.XORAL,0FHLOOPK1
2.shlah,1addal,bl
五、编制程序题
.modelsmall
.stack
.data
inmsgdb‘InputNumber:
0~9’,0dh,0ah,’$’
ermsgdb‘Error!
’,’$’
.code
.startup
movdx,offsetinmsg
movah,9
int21h;显示输入数字0~9
again:
movah,1
int21h;接受一个字符
cmpal,’0’;判断是否输入的是数字0~9
jberdisp
cmpal,’9’
jaerdisp
movdl,al
movah,2
int21h;显示输入的数字
jmpdone;结束
erdisp:
movdx,offsetermsg
movah,9
int21h;显示输入错误
jmpagain;继续输入
done:
.exit0
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 习题
![提示](https://static.bingdoc.com/images/bang_tan.gif)