汇编语言程序设计练习题及参考答案.docx
- 文档编号:5771930
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:25
- 大小:28.41KB
汇编语言程序设计练习题及参考答案.docx
《汇编语言程序设计练习题及参考答案.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计练习题及参考答案.docx(25页珍藏版)》请在冰豆网上搜索。
汇编语言程序设计练习题及参考答案
一、单项选择题
从每小题的四个备选答案中,选出一个正确答案,并将正确答案的番号填人括号内。
1.用来存放下一条将要执行的指令地址的寄存器是(B)
A.SPB.IPC.BPD.CS
2.要使串处理从低地址向高地址进行,应把标志位置为(D)
A.IF=1B.TF=0
C.DF=1D.DF=0
3.使状态标志位CF清零的错误指令是(C)
A.ORAX,AXB.SUBAX,AX
C.MOVCF,0D.CLC
4.设SP=1110H,执行PUSHAX指令后,SP的内容为(B)
A.SP=1112HB.SP=110EH
C.SP=1111HD.SP=110FH
5.汇编源程序出现语法错误的指令有(D)
A.MOV[BX+SI],ALB.MOVAX,[BP+DI]
C.MOVDS,AXD.MOVCS,AX
6.下列串操作指令中,必须同时指明源串和目的串地址的指令是(D)
A.STOSWB.LODSW
C.SCASWD.CMPSW
7.设BL中有一无符号数,实现把BL中的数乘以2,应选用的指令是(B)
A.SHRBL,1B.SHLBL,1
C.SARBL,1D.RCRBL,1
8.执行PUSHAX指令的正确步骤是(A)
A.1.SP←SP-1,(SP)←AHB.1.(SP)←AH,SP←SP-1
2.SP←SP-1,(SP)←AL2.(SP)←AL,SP←SP-1
C.1.SP←SP+1,(SP)←AHD.1.(SP)←AH,SP←SP+1
2.SP←SP+1,(SP)←AL2.(SP)←AL,SP←SP+1
9.CF=1时转移到目标地址的条件转移指令是(B)
A.JNCB.JCC.JZD.JS
10.在执行NEG指令时,对标志位CF有影响,其影响的规则是(C)
A.对正数求补时,CF=0B.对负数求补时,CF=0
C.对非零数求补时,CF=1D.对零求补时,CF=1
11.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是(A)
A.目的操作数最高位为0B.目的操作数最高位为1
C.目的操作数为任意情况D.无论什么情况都不可能相同
12.设AL=04H,BL=0F8H,执行IMULBL指令后,结果是(D)
A.AX=0032HB.AX=00E0H
C.AX=03E0HD.AX=0FFE0H
13.指令的操作数中,允许出现表达式,例如BUF1与BUF2均为变量名,下面指令中语法正确的是(D)
A.MOVAX,BUFl*BUF2
B.MOVAX,BUF1/BUF2
C.MOVAX,BUF1+ES:
BUF2
D.MOVAX,BUF2-BUF1
14.下面指令中,操作数的寻址方式为寄存器间接寻址的指令是(C)
A.INCWORDPTR[BX+SI]
B.INCCX,[SI+COUNT]
C.NEGBYTEPTR[BX]
D.ADDAX,B
15.NUMEQU80H
DADB34H
ANDDA,NUM
上述语句执行后,DA中的内容是(D)
A.0B4HB.80HC.34HD.0
16.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序为(A)
A.立即、直接、间接B.直接、间接、立即
C.直接、立即、间接D.不一定
17.语句DA1DB2DUP(3,5,7)汇编后,该语句可等同于的语句是(D)
A.DA1DB3,5,7
B.DA1DB2,3,5,7
C.DA1DB3,5,7,2
D.DA1DB3,5,7,3,5,7
18.MOVAL,80H
MOVCL,2
SARAL,CL
上述指令序列执行后,结果是(D)
A.AL=40HB.AL=20H
C.AL=0C0HD.AL=0E0H
19.下面是实现将AL内容加1的压缩型BCD码加法程序段,其中正确的指令序列是(A)
A.INCALB.ADDAL,1
DAADAS
C.ADDAL,1D.STC
DAAAAA
20.现有数据存储如图所示:
20H
38H
41H
55H
30100H
30101H
30102H
30103H
设AL=01H,BX=0100H,DS=3000H执行换码指令XLAT后正确的结果是(B)
A.AL=20HB.AL=38H
C.AL=00HD.AL=41H
21.若定义DATDW'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是(B)
A.0041HB.4100H
C.xx41HD.41xxH
[注]选项C.和D.中的XX表示任意数据。
22.假设VAR为变量,指令MOVBX,OFFSETVAR的寻址方式是(C)
A.直接寻址B.间接寻址
C.立即寻址D.存储器寻址
23.下列指令中,不影响标志位的指令是(A)
A.SUBBX,BXB.RORAL,1
C.JNCLabelD.INTn
24.假定(DS)=4000H,(DI)=0100H,(401OOH)=55H,(40101H)=AAH,试问执行指令LEABX,[DI]后,(BX)=(C)
A.0100HB.55AAH
C.AA55HD.4100H
25.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序为(A)
A.直接、立即、间接D.直接、间接、立即
C.立即、直接、间接D.不一定
?
26.MOVAX,ES:
[BX][SI]的源操作数的物理地址是(B)
A.16×(DS)+(BX)+(SI)B.16×(ES)+(BX)+(SI)
C.16×(SS)+(BX)+(SI)D.16×(CS)+(BX)+(SI)
27.已知:
VARDW1,2,$+2,5,6
若汇编时VAR分配的偏移地址是0010H,则汇编后0014H单元的内容是:
(D)
A.6HB.14HC.5HD.16H
?
28.PC机采用向量中断方式处理8级外中断,中断号依次为08H~0FH,在RAM0:
002CH单元开始依次存放23H、FFH、00H和FOH四个字节,该向量对应的中断号和中断程序人口是(B)
A.0CH,23FF:
00F0HB.0BH,F000:
FF23H
C.0BH,00F0:
23FFHD.0CH,F000:
FF23H
29.下列80X86指令中,不合法的指令是(D)
A.INAX,21HB.MOVBL,AL
C.MOVSBD.SHLAX,6
30.执行下面的程序段后,(AX)=(B)
DATASEGMENT
TABDW1,2,3,4,5,6
ENTRYEQU3
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE
MOVAX,DATA
MOVDS,AX
...
MOVBX,OFFSETTAB
ADDBX,ENTRY
MOVAX,[BX]
...
A.0003HB.0300H
C.0400HD.0004H
31.下面指令中影响状态位CF的指令是(D)
A.INCAXB.DECAX
C.NOTAXD.NEGAX
32.判当CX=0时,转ZERO执行的错误指令是(D)
A.CMPCX,0B.MOVAX,CX
JZZEROJZZERO
C.ORCX,CXD.JCXZZERO
JZZERO
33.执行1号DOS系统功能调用后,从键盘输入的字符应存放在(A)
A.AL中B.BL中
C.CL中D.DL中
34.设数据定义如下:
ARRAYDW1,2,3
执行指令ADDSI,TYPEARRAY相当于完成下面同等功能的指令是(B)
A.ADDSI,1B.ADDSI,2
C.ADDSI,3D.ADDSI,0
35.设数据定义如下:
BUFDW100DUP(?
)
执行指令:
MOVCX,LENGTHBUF相当于完成下面同等功能的指令是(D)
A.MOVCX,00C8HB.MOVCX,0200H
C.MOVCX,0064HD.MOVCX,0100H
36.完成对字单元BUF的内容加1运算,下面错误的指令是(C)
A.MOVBX,BUFB.MOVBX,OFFSETBUF
INCBXINCWORDPTR[BX]
MOVBUF,BX
C.MOVBX,BUFD.MOVBX,0
INCWORDPTR[BX]INCWORDPTRBUF[BX]
37.完成对寄存器BX的内容求补运算,下面错误的指令是(D)
A.NEGBXB.NOTBX
INCBX
C.XORBX,0FFFFHD.MOVAX,0
INCBXSUBAX,BX
38.判当AX的内容为负数时,转MINUS执行,下面错误的指令是(D)
A.NOTAXB.TESTAX,8000H
JNSMINUSJNZMINUS
C.SHLAX,1D.ORAX,AX
JCMINUSJZMINUS
39.下面指令序列执行后,正确的结果是(D)
MOVAL,0FEH
ADDAL,AL
ADCAl,AL
A.AL=0F8HB.AL=0F8H
CF=1CF=0
C.AL=0F9HD.AL=0F9H
CF=0CF=1
40.现有数据存储如图所示:
40H
79H
24H
30H
30100H
30101H
30102H
30103H
设AL=01H,BX=0100H,DS=3000H执行换码指令XLAT后正确的结果是(D)
A.AL=00HB.AL=4OH
C.AL=01HD.AL=79H
41、一个8位二进制数的补码为10001010,其原码的16进制形式为C
A.-0AH B.-75H C.-76H D.8AH
42、1号DOS功能调用时,欲将得到的数字的ASCII码转换为该数的实际数值时,可使用A指令来实现。
A.ANDB.ORC.XORD.NOT
43、设DS=8225H,DI=5678H,指令MOVAX,[DI]源操作数的物理地址是D
A.8D89DH B.86198H C.8B698H D.878C8H
44、指令JGLAB是指当标志满足_B__条件时转移到标号LAB处执行
A.((SFXOROF)ORZF)=1B.(SFXOROF)=0ANDZF=0
C.(SFXOROF)=0ORZF=1D.CF=1
45、8086汇编语言中,BCD码的运算是借用二进制数的运算指令并加以调整来实现的。
其中非压缩型BCD码减法的调整指令为_C__
A.AAAB.DAAC.AASD.DAS
46、除法指令中,对于双字除以字运算,商在_A__寄存器中。
A.ALB.AHC.AXD.DX
47、MOVAX,COUNT[SI]的源操作数在_B__
A.CS段B.DS段C.SS段D.ES段
48、汇编程序至少必须有一个_A__
A.CS段B.DS段C.ES段D.SS段
49、LOOPNE指令当满足_C__时执行循环操作。
A.ZF=1且CX=0B.ZF=1且CX≠0
C.ZF=0且CX≠0D.ZF=0且CX=0
50、如果一标号与访问它的JMP指令之间的相对位移量在-128~+127字节的范围内,则可将该标号说明为_C__转移
A.FARB.NEARC.SHORTD.MIDDLE
?
51、10号功能调用可从键盘上输入一串字符,调用时_B___应指向一输入缓冲区。
A.DS:
AXB.DS:
DXC.ES:
AXD.ES:
DX
52、串操作指令中,目的串通过_D__两个寄存器寻址:
A.DS,SIB.DS,DIC.ES,SID.ES,DI
53、将DX的内容除以2,正确的指令是C___。
A.DIV2 B.DIVDX,2 C.SARDX,1 D.SHLDX,1
?
54、在END语句中的标号名称能提供_B__寄存器的数值,作为程序执行时的起始地址。
A.DS:
SIB.CS:
IPC.ES:
DID.SS:
SP
55、段内调用时CALL指令将_B__保存进栈,以供过程返回时使用。
A.CSB.IPC.CS:
IPD.SS:
SP
56、执行后使BX=0的同时也使CF=0,OF=0的指令是( A )
A.XORBX,BX B.ORBX,BX
C.ANDBX,BX D.CMPBX,BX
?
57、在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是(C )
A.DAA校正指令的功能已自动加在AH中
B.进位值在AF中,校正后根据AF内容再加在AH中
C.进位值在CF中,校正后根据CF内容再加在AH中
D.进位值在AL最高位上,校正后根据AL最高位内容再加在AH中
58、比较两个带符号的数A、B,当A=B时程序转移,测试的条件为( C )
A.ZF=1 B.ZF=0
C.SF=1 D.SF=0
59.设物理地址(21000H)=20H,(21001H)=30H,(21002H)=40H。
如从地址21001H中取出一个字的内容是( D )
A.2030H B.3040HC.3020H D.4030H
60.没有语法错误的输入指令是( A )
A.INAL,30H B.IN30H,ALC.INDX,AL D.INAL,[BX]
61.汇编语言源程序,可以是( D )
A.可以直接由机器执行
B.必须由编译程序生成目标程序才能执行
C.必须由解释程序生成目标程序才能执行
D.必须由汇编程序汇编成目标程序才能执行
62.设NUM1EQU100
NUM2=64H
下面指令执行后,使BL中为全1的指令是( A )
A.MOVBL,NUM1EQNUM2 B.MOVBL,NUM1LTNUM2
C.MOVBL,NUM1NENUM2 D.MOVBL,NUM1GTNUM2
63.循环指令LOOPNZ终止循环的条件是(B)。
A、CX=0,且ZF=0
B、CX=0,或ZF=1
C、CX10,且ZF=0
D、CX10,或ZF=1
64.在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是(D)。
A、WORD
B、PAGE
C、BYTE
D、PARA
65.BUFDW10HDUP(3DUP(2,10H),3,5)
上述语句汇编后,为变量BUF分配的存储单元字节数是(A)。
A、80HB、100HC、124D、192
二、填空题
1.Intel8086/8088CPU共有20根地址线,可直接寻址220字节存储空间。
2.ADD是一条双操作数指令,即一条指令有源操作数和目的操作数。
例如指令ADDOPR1,OPR2中的源操作数是OPR2,目的操作数是OPR1。
3.8086/8088的存储器是分段的,因此存储单元的物理地址是由段地址和偏移地址组合而成的。
4.PSW是一个八位的寄存器。
5.用DW1234H语句定义的一个字,如改用DB定义时,其语句是DB34H,12H。
6.执行ADDAX,BX指令后产生溢出则转移到ERROR处执行。
那么在ADD指令后,如AX,BX中是带符号数时,应选用的条件转移指令是JO,如是无符号数时,应选用的条件转移指令是JC。
7.8086/8088CPU允许的最大存储空间为1M,其地址编号从00000H到FFFFFH。
8.汇编语言是一种面向机器的语言。
完成将汇编语言源程序翻译成机器语言目的程序的翻译程序称汇编程序。
9.8086/8088的存储器是分段的,因此存储单元的物理地址是由段地址和偏移地址组合而成的。
10.标号和变量(名字)均有三种属性,它们是段、偏移和类型属性。
11.判断无符号数运算是否溢出应根据CF标志位;而判断有符号数运算是否溢出应根
据OF标志位。
?
12.在16位存储单元中能存储的最大无符号数为65535,能表示的有符号数的范围是
H到103E7H。
-216~216-1
13.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOVAX,(SI+COUNT)中,源操作数的有效地址EA为_20A8H_______,其物理地址为_11488H_______。
14.当标志位_CF_______=1时表示无符号数运算产生溢出,而当标志位_OF_______=1是表示带符号数运算产生溢出。
三、程序分析题
1.MOVAX,0F0FH
ANDAX,0FFFH
ORAX,0F0FH
XORAX,00FFH
上述程序段运行后,AX=0FF0H,CF=0
2.MOVAX,BX
NEGAX
ADDAX,BX
(注:
BX=0101H)
问:
该程序段执行后,AX= 0000H ,CF= 1 。
3.BUFDW0000H
∶
LEABX,BUF
STC;进位位置1
RCRWORDPTR[BX],1
MOVCL,3
SARWORDPTR[BX],CL;算术右移
问:
该程序段执行后:
存储单元BUF的内容为 F000H 。
4.BLOCKDB 20H,1FH,08H,81H,0FFFH……
RESULTDB ?
∶
START:
LEASI,BLOCK
MOVCX,[SI]
INCSI
MOVAL,[SI]
LOP1:
CMPAL,[SI+1]
JNGNEXT
MOVAL,[SI+1]
NEXT:
INCSI
LOOPLOP1
MOVRESULT,AL
HLT
问:
(1)该程序完成的功能是:
找出存储单元block中的最小值。
(2)该程序的循环次数是:
20H。
5.CODESEGMENT
ASSUMECS:
CODE
START:
MOVCX,1
MOVBL,2
AGAIN:
MOVAL,BL
INCBL
MULBL
ADDCX,AX
CMPAX,002AH
JBAGAIN
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
问:
(1)该程序所完成的功能可用算术表达式表示为sum=1+2*3+3*4+4*5+5*6+6*7。
(2)该程序完成后CX=6F。
6、ARY DW 10 DUP(?
)
┇
MOV AL,TYPE ARY
MOV BL,LENGTH ARY
MOV CL,SIZE ARY
上述MOV指令序列执行后的结果是什么?
Moval,2
Movbl,0Ah
Movcl,14H
7、试分析下面程序段的功能是什么?
CMPDL,‘A’
JBDIS
CMPDL,‘Z’
JNADIS
LETTER:
ADDDL,20H
DIS:
MOVAH,2
INT21H
?
8、下列指令执行后,AL的内容是什么?
MOVAL,53H
ADDAL,69H
DAA
DAA
88H
?
9.DS:
5000H,CS=6000H,BX=1278H,SI=345FH,(546D7H)=00,(546D8H)=80H。
分别执行下述两条段内转移指令后,实际转移的目标物理地址各是多少?
(1)JMPBX
(2)JMP[BX+S1]
10.数据定义语句ARRARDW1,2,$+4,3,4,$+5如汇编时ARRAY分配的偏移地址为000AH,试指出ARRAY数组数据项$+4和$+5中的$分别是多少?
000E,0014
11.试按下列要求在数据段中依次书写各数据定义语句:
(1)DA1为首字节的连续存储单元中存放20H个重复的数据序列:
2,3,10个4,一个7
Da1db20hdup(2,3,10dup(4),7)
(2)DA2为字符串变量,用字变量(DW)设置一字符串:
'STUDENTS'(按此顺序存放在各单元中)
Da2dw‘st’,’ud’,’en’,’ts’
(3)用等值语句给符号COUNT赋值以DA1为首址的数据区共占有的字节数,此等值语句必须放在最后一语句。
Countequ$-da1
?
12.MOVDL,AL
NOTDL
TESTDL,04H
JENEXT
┇
NEXT:
…
若上述程序段执行时产生分支,说明AL中的数第几位一定为1?
程序段执行后CF是多少?
3
13. MOVBL,64H
MOVCL,03H
XORAX,AX
AGAIN:
ADDAL,BL
ADCAH,0
DECCL
JNZAGAIN
问:
(1)该程序段完成的功能是:
64h*3放入ax中
(2)AX=_12C_______。
14.AT DB0AH,0BH,0CH,0DH,0EH,0FH,00H
MOVBX,0
LOP:
MOVDL,AT[BX]
CMPDL,0
JZDONE
ADDDL,37H
MOVAH,2
INT21H
INCBX
JMPLOP
DONE:
……
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 练习题 参考答案