汇编习题.docx
《汇编习题.docx》由会员分享,可在线阅读,更多相关《汇编习题.docx(22页珍藏版)》请在冰豆网上搜索。
汇编习题
1.循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是(B)
A.CX≠0且ZF=1B.CX≠0且ZF=0C.CX≠0或ZF=1D.CX≠0或ZF=0
2.设VARl和VAR2是已定义的变量名,非法的表达式是(B)
A.VARl-VAR2B.VAR2-VARl[BX]C.VARl+VAR2D.VARl[BX]
3.设NUM=11011011B,指令MOVAX,NUMSHL3执行后AX中的值是(A)
A.11011011000BB.1l011000BC.00011011BD.00011011011B
4.8088/8086存储器分段,每个段不超过()
A.64K个字B.32K个字节C.64K个字节D.1兆个字节
5.若AX=-15要得到AX=15应执行的指令是()
A.NEGAXB.NOTAXC.INCAXD.DECAX
6.8086/8088系统执行传送指令MOV(A)
A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志
7.下列指令中操作数在代码段中的是(A)
A.MOVAL,42HB.ADDAL,BLC.SUB[BX],DID.INC[DI]
8.表示过程定义结束的伪指令是(A)
A.ENDPB.ENDS@段结束C.END@源程序结束D.ENDM
9.条件转换指令JNBE产生转换的条件是(A)
A.CF=0ANDZF=0B.CF=0ANDZF=1C.CF=1ANDZF=0D.CF=1ANDZF=l
10.设(SS)=338AH,(SP)=450H,执行PUSHBX,和PUSHF两条指令后,堆栈顶部的物理地址是(A)
A.33CECHB.33CF2HC.33CF4HD.33CE8H
11.要输入端口1234H中的8位数据,其指令应是(B)
A.MOVDX,1234HB.MOVDX,1234HOUTDX,ALINAL,DX
C.INAX,1234HD.OUTDX,1234H
12.标志寄存器中属于控制标志位的是(B)@其余6个为状态标志位
A.DF,OF,SFB.DF,IF,TFC.OF,CF,PFD.AF,OF,SF
13.用一条指令实现将寄存器BX和SI中的内容相加,结果送入AX中,这条指令是(D)
A.ADDAX,[SI][BX]B.MOVAX,[BX+SI]C.ANDAX,[BX+SI]D.LEAAX,[BX][SI]
14.已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正确的是(B)
A.DIVBXB.CWD
IDIVBX
C.XORDX,DXD.CBW
DIVBXIDIVBX
15.下列有语法错误的语句是(A)
A.DB1234HB.DW4567HC.DD′AB′,′CD′D.DB′ABCD′
16.下列寄存器组中在存储器操作数寻址时可用于提供偏移地址的是( B )
A.AX,BX,CX,DXB.SP,BP,SI,DIC.CS,ES,DS,SSD.BX,BP,SI,DI
17.某存储单元的段地址是0AB90H,偏移地址是1234H,该存储单元的物理地址是( B )@AB900+1234
A.0BDC4HB.0ACB34HC.0AD134HD.1CED0H
18.执行NEG指令时,要设置标志位CF。
设置CF的正确说法是( C )
@NEG0时,CF=0,否则为1
A.对正数求补时,CF置0B.对负数求补时,CF置0
C.对全0数据求补时,CF置0D.对非零数据求补时,CF置0
19.设DF=1,每次执行CMPSW指令时,SI和DI均要分别( D )
A.减1B.减2C.加1D.加2
20.要使BL中的低四位变反,高四位不变,应执行指令(D )
A.NOTBLB.ORBL,0FHC.ANDBL,0FHD.XORBL,0FH
21.设(AL)=07H,要使(AL)=-07H应执行的指令是( B )
A.ORAL,80HB.NOTALC.NEGALD.ADDAL,80H
22.在8086/8088的立即数寻址方式中,下列说法正确的是( D )
A.使用AX,BX,CX,DXB.使用SI,DI,BP,SP
C.使用任一个通用寄存器D.不使用任何寄存器
23.下列指令执行时操作数在数据段的是( D )
A.MOVAX,32768HB.ADDAL,AHC.NEGBXD.INC[DI]
24.下述指令执行后,AL的值是( A )
MOVAL,-1
NEGAL
XORAL,65
A.01HB.40HC.61HD.64H
25.设SP=4AH,执行段内返回指令RET4后,SP的值是( D )
A.44HB.48HC.4CHD.50H
26.在查错程序DEBUG中,为查看或修改内存单元的内容使用的是(A)@偏移地址
A.逻辑地址B.物理地址
C.逻辑地址或物理地址D.由用户指定选择逻辑地址或物理地址
27.设NUM=60H,表达式:
(NUMLT60HAND30)OR(NUMGE60HAND40)的值是(A )
A.0B.3EHC.40D.0FFFFH
28.指令MOVCL,55HXOR0F0H执行后CL中的值是( C )
A.05HB.50HC.0A5HD.0F5H
29.下面语句中能和指令MOVAX,NOT0FH等效的是( C )
A.MOVAX,0FFFFHB.MOVAX,0FH
C.MOVAX,0FFF0HD.MOVAX,0F0FFH
30.对CS段寄存器赋段地址的方法是( A )
A.MOVAX,CODEB.ASSUMECS:
CODE
MOVCS,AX
C.END起始地址D.MOVCS,2050H
31.有数据定义BUFDB8DUP(3DUP
(2),2DUP(3)),在BUF中能构成数据0302H有( C )
A.5个B.6个C.7个D.8个
32.下面指令执行后BX的内容是( D )
XDW1234H,0A9BH
YDB7EH,8DH
┇
MOVBH,TYPEX
MOVBL,TYPEY
A.0102HB.0101HC.1234HD.0201H
33.下面有语法错误的指令是( B )@不包括段寄存器cs,不能同时是存储单元,不能有立即数
A.XCHGAX,[BX]B.XCHGAX,DSC.XCHGAX,SID.XCHGAX,BP
34.条件转移指令JBE产生转移的条件是( D )
A.CF=0ORZF=0B.CF=0ORZF=1C.CF=1ORZF=0D.CF=1ORZF=1
35.下述程序段产生分支的条件是( A )@异或:
相同为0,相异为1,执行后CF=0,OF=0。
JZ转移条件:
ZF=1
XORAX,426H
JZDONE
A.执行前AX=426HB.执行前AX≠426HC.执行前AX=全0D.执行前AX=全1
36.CPU要访问的某一存储单元的实际地址称( C )
A.段地址B.偏移地址C.物理地址D.逻辑地址
37.某存储单元的物理地址是12345H,可以作为它的段地址有( D )
A.2345HB.12345HC.12340HD.1234H
38.执行后使BX=0的同时也使CF=0,OF=0的指令是( A )
A.XORBX,BXB.ORBX,BXC.ANDBX,BXD.CMPBX,BX
39.AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是( C )
A.指令XORAX,AX执行后,AX内容不变,但设置了标志位
B.指令ORDX,1000H执行后,将DX最高位置1,其余各位置0@高四位
C.指令ANDAX,0FH执行后,分离出AL低四位
D.NOTAX,执行后,将AX清0@取反
40.在执行下列指令时,需要使用段寄存器DS的指令是( D )
A.STOSWB.ADDAL,CC.NEGBXD.INCDA[BX]
41.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是
( B )
A.ADDBH,01HB.ORBH,01HC.XORBH,01HD.TESTBH,01H
42.完成对CL寄存器的内容乘以4的正确操作是( A )
A.ROLCL,1B.MUL4ROLCL,1C.SHLCL,1D.MOVCL,2
SHLCL,1SHLCL,CL
43.下面各传送指令中,正确的是(A)
A.MOV[DI],[SI]B.MOV[DX+DI],AL
C.MOVWORDPTR[BX],0100H
D.MOVAL,BX
44.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法( B )
A.名字的第一个字符可以是大写英文字母及小写英文字母
B.名字的第一个字符可以是字母、数字及?
、@@不能以数字开头
C.名字的有效长度≤31个字符
D.在名字中不允许出现$
45.要实现使BETA的值为56,应采用语句为( C )
A.BETADB56B.BETADB56HC.BETAEQU56D.BETAEQU56H
46.REPZCMPSW指令,重复执行的终止条件是( A )
A.CX=0或ZF=0B.CX=0且ZF=0
C.CX=0或ZF=1D.CX=0且ZF=1
47.下面程序段执行后,AL中的内容是(B )
MOVAX,8833H
ADDAL,AH
DAA
A.21B.21HC.0C1HD.0DDH
48.比较两个带符号的数A、B,当A=B时程序转移,测试的条件为( A )
A.ZF=1B.ZF=0C.SF=1D.SF=0
49.检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMPAL,BL”指令后应跟的分支指令是( A )
A.JNCLOP1B.JALOP1C.JCLOP1D.JGELOP1
50.在下列串操作指令中,同时使用源串和目的串地址指针的指令是( D )
A.STOSWB.LODSWC.SCASWD.CMPSW
51.设AL=0AH,下列指令执行后能使AL=05H的是( A )
A.NOTALB.ANDAL,0FHC.XORAL,0FHD.ORAL,0FH
52.已有数据定义及指令如下,指令执行后AX中的内容是( A )
DA1DW‘AB’,‘CD’,‘EF’,‘GH’
┇
MOVAX,DA1+3
A.‘EF’B.‘CD’C.‘BC’D.‘FC’
53.使用DOS系统功能调用时,使用的软中断指令是( D )
A.INT21B.INT10HC.INT16HD.INT21H
54.为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句是( B )
A.DB41,42,43,44,45,46B.DW4142H,4344H,4546H
C.DW‘AB’,‘CD’,‘EF’D.DW‘BA’,‘DC’,‘FE’
55.在同一程序段中,定义下面伪指令,正确的是( D )
A.PORTEQUALB.CONTEQU3500HANDOFFH
PORTEQU2000H
C.STRlDD‘ABCD’D.STR2DW‘ABCD’
56.下述语句执行后AX中的值是( C )
DA2DB‘AB’,‘CD’
┇
MOVAX,WORDPTRDA2+1
A.‘AD’B.‘BCC.‘DA’D.‘CB’
57.下列数据定义语句中可实现留空20H个字节存储单元的是( D )
A.DB20DUP(?
)B.DW20HDUP(?
)
C.DB10HDUP(4DUP(?
))D.DD08HDUP(?
)
58.为使ADR1+2字存储单元中内容为0030H,下述方框中应选用的语句是( D )
DATASEGMENT
VAR1DB12H,34H
VAR2DB10HDUP(O)
ADR1DWVAR1,VAR2
DATAENDS
A.ORG30HB.DB2EHDUP(0)C.DB30HDUP(0)D.ORG$+30H
59.如某存储器分段时,表示偏移地址是17位二进制代码,那么一个段最多的存储单元数是( B )
A.32K字节B.32K字C.64K字节D.64K字
60.下列寄存器中用来指示堆栈中任意数据区的偏移地址的是( B )
A.BXB.BPC.SID.DI
61.下列指令中有语法错误的是( C )
A.PUSHAXB.PUSH[20H+SI+BX]C.POPCSD.PUSHCS
62.下面有语法错误的指令是( A )
A.LDSBL,VAR[SI]B.LEABX,VAR[SI]
C.LESDI,VAR[BX]D.LEADI,VAR[BP]
63.执行PUSHBP指令时,目的操作数的物理地址表达式是( D )
A.16*SS+BPB.16*DS+BPC.16*CS+IPD.16*SS+SP
64.把BL中的数据输出到端口8CH中正确指令是( C )
A.OUT8CH,BLB.IN8CH,BL
C.MOVAL,BLD.MOVAL,BL
OUT8CH,ALIN8CH,AL
65.结果为零的条件转移指令,其测试条件是( A )
A.ZF=1B.ZF=0C.SF=lD.SF=0
66.下面程序段完成测试DA-BYTE字节单元中数是否为负数,若是则将全l送DH中,否则全0送DH中,那么程序段中方框里应填的语句是
MOVCH,0
TESTDA-BYTE,80H
MOVCH,0FFH
ZERO:
MOVDH,CH( B )
A.JNZZEROB.JSZEROC.JZZEROD.JCZERO
67.汇编源程序时,出现语法错误的语句是( C )
A.MOV[BX+SI],BXB.MOVCL,[BP+DI]C.MOVCS,AXD.MOVDS,AX
68.设SP初值为3050H,执行指令PUSHBX后,SP的值是( B )
A.304FHB.304EHC.3048HD.3049H
69.下列指令执行后影响CF值的是( D )
A.DECB.XCHGC.LEAD.SHL
70.串操作指令中,每次操作后使SI/DI为减量应设置( C )
A.DF=0B.TF=1C.DF=1D.TF=0
71.设AL=57H,BL=24H,执行指令SUBAL,BL后,寄存器内容为( B )
A.AL=57H,BL=24HB.AL=33H,BL=24H
C.AL=57H,BL=33HD.AL=33H,BL=0
72.设CL=8,AL=0C8H,执行SARAL,CL后,AL中的数据是( C )
A.0FFHB.80HC.00HD.0FEH
73.已知BX=028AH,SI=0294H,(DS:
051EH)=5432H。
执行语句LEABX,[BX+SI]后,BX中的内容是( C )
A.051EHB.5423HC.1E05HD.3254H
74.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是(A)。
A.2025∶0F2AB.2108∶00EAC.2000∶017AD.2100∶117A
75.某程序装入内存后,DS=1200H,CS=1400H,则程序中数据段中的数据最多是(C)字节。
A.2KB.4KC.8KD.16K
76.以寄存器DI间接寻址的存储器字节单元内容加1的指令是(C)。
A.INC[DI]B.INCDI
C.INCBYTEPTR[DI]D.ADD[DI],1
77.有语句:
COUNTEQU256,下列四种叙述中,正确的是(C)。
A.COUNT是变量B.COUNT占用一个字节存储单元
C.COUNT是符号常数D.COUNT占用二个字节存储单元
78.下面指令中,源操作数的寻址方式为立即寻址的是(A)。
A.MOVAX,OFFSETAB.MOVAX,A
C.MOVAX,A+1D.MOVAX,A[BX]
79.已知SP=2110H,执行POPAX后,SP寄存器的值是(B)。
A.2111HB.2112HC.210FHD.210EH
80.将AX中有符号数除以2的正确指令是(B)。
A.SHRAX,1B.SARAX,1C.RORAX,1D.RCRAX,1
81.比较BX和SI中的两个存储器地址,若BX≥SI转向HIGH的正确指令是(A)。
A.JAEHIGHB.JBEHIGHC.JEGHIGHD.JLEHIGH
82.指令SCASB操作数的段地址一定在(B)寄存器中。
A.CSB.DSC.ESD.SS
83.有数据定义语句BUFDW0ABH,1,10DUP(3DUP(1,0),2)汇编后,为变量BUF分配的存储单元字节数是(C)。
A.48HB.90HC.120D.60
84.下列指令执行后,不改变AL寄存器内容的指令是(B)。
A.ANDAL,1B.CMPAL,DLC.XORAL,ALD.SUBAL,DL
85.执行1号DOS系统功能调用,从键盘输入的字符值存放在(A)寄存器中。
A.ALB.BLC.CLD.DL
86.执行下面指令语句,则AX=(C)。
MOVAL,95H
CBW
A.0095HB.0F95HC.0FF95HD.9095H
87.将DX,AX中32位数左移一位的指令序列是(A)。
A.SHLAX,1B.RCLAX,1
RCLDX,1SHLDX,1
C.SHLAX,1D.RCLAX,1
SHLDX,1RCLDX,1
88.将CX寄存器低4位清零的正确指令是(B)。
A.ANDCX,0F0HB.ANDCX,0FFF0H
C.ANDCX,1110HD.MOVCX,0
89.判断AX和BX是否同时为偶数或同时为奇数。
若是转YES的正确指令序列是(B)。
A.ORAX,BXB.XORAX,BX
ANDAX,1ANDAX,1
JEYESJEYES
C.CMPAX,BXD.SUBAX,BX
ANDAX,1ANDAX,1
JEYESJEYES
90.当执行ADDAX,BX指令后,若AX的内容为4E52H时,设置的奇偶标志位PF=0,下面的叙述正确的是(D)
A.表示结果中含1的个数是奇数
B.表示结果中含1的个数是偶数
C.表示该数是奇数
D.表示结果中低8位中含1的个数是奇数
91.设物理地址(21000H)=20H,(21001H)=30H,(21002H)=40H。
如从地址21001H中取出一个字的内容是(D)
A.2030HB.3040HC.3020HD.4030H
92.转移指令JMPNEARPTRPROCA的转移范围是(A)
A.8000H~7FFFHB.7FFFH~0FFFHC.80H~7FHD.0FH~7FH
93.设CF=1,实现AL内容乘2的指令是(C)
A.RCLAL,1B.SARAL,1C.SHLAL,1D.RORAL,1
94.算术右移指令SAR和逻辑右移指令SHR,两条指令执行结果完全相同的条件是(A)
A.目的操作数最高位为0B.目的操作数最高位为1
C.目的操作数为任意情况D.无论什么情况都不可能完全相同
95.没有语法错误的输入指令是(A)
A.INAL,30HB.IN30H,ALC.INDX,ALD.INAL,[BX]
96.与LEABX,BUF指令完全等效的指令是(C)
A.MOVBX,BUFB.LDSBX,BUF
C.MOVBX,OFFSETBUFD.MOVBX,WOKDPTRBUF
97.设有变量VAR和标号LAB,不正确的指令是(C)
A.LEAAX,VARB.LEAAX,LAB
C.JMPNEARPTRVARD.JMPSHORTLAB
98.设SP的初值为1000H,执行指令PUSHAX后SP的值是(C)
A.0FFFHB.1001HC.0FFEHD.1002H
99.下列指令执行后既能使AX=0同时又使CF=0,OF=0的是(A)
A.XORAX,AXB.ANDAX,AXC.ORAX,AXD.TESTAX,0
100.在指令的操作数字段中,允许出现表达式,若BUF1与BUF2均为变量名,下面指令中正确的是(D)
A.MOVDX,BUF1*BUF2B.MOVDX,BUF1/BUF2
C.MOVDX,(BUF1*BUF2)-BUF1D.MOVDX,BUF2-BUF1
101.汇编语言源程序,可以是(D)
A.可以直接由机器执行B.必须由编译程序生成目标程序才能执行
C.必须由解释程序生成目标程序才能执行D.必须由汇编程序汇编成目标程序才能执行
102.下述指令语句执行后AX中的内容是(A)
ORG200H
BUFDB12H,34H
MOVAX,WORDPTRBUF
A.3412HB.1234HC.0200HD.0012H
103.伪指令DA1DB04HDUP(3DUP
(2),2DUP(3))在数据区中能构成0203H操作数共有
(C)
A.