汇编语言部分练习题.docx
《汇编语言部分练习题.docx》由会员分享,可在线阅读,更多相关《汇编语言部分练习题.docx(16页珍藏版)》请在冰点文库上搜索。
汇编语言部分练习题
汇编语言部分练习题
1.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是(d)。
A.2025∶0F2AB.2108∶00EA
C.2000∶017AD.2100∶117A
2.当执行ADDAX,BX指令后,若AX的内容为4E52H时,设置的奇偶标志位PF=0---(PF=0时,低8位1的个数为奇数),下面的叙述正确的是(D)
A.表示结果中含1的个数是奇数B.表示结果中含1的个数是偶数
C.表示该数是奇数D.表示结果中低8位中含1的个数是奇数
3.设物理地址(21000H)=20H,(21001H)=30H,(21002H)=40H。
如从地址21001H--(告诉我们的地址都是最低位的地址)中取出一个字的内容是(B)
A.2030HB.3040H
C.3020HD.4030H
?
?
?
4.没有语法错误的输入指令是(?
?
A)
A.INAL,30HB.IN30H,AL
C.INDX,ALD.INAL,[BX]
5.与LEABX,BUF指令完全等效的指令是(C)
A.MOVBX,BUFB.LDSBX,BUF
C.MOVBX,OFFSETBUFD.MOVBX,WOKDPTRBUF
6.8086/8088的存贮器组织是将存储器划分为段,可作为段的起始地址是(B)
A.185A2HB.00020H
C.01004HD.0AB568H
7.下列指令执行后,能影响标志位的指令是(B)---数据传送指令除SAHF和POPF外都不影响状态标志位P-105
A.PUSHFB.POPF
C.JNLEOPRD.LOOPELOP
8.循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是(A)P-143
A.CX≠0(次数寄存器)且ZF=1(0标志位)B.CX≠0且ZF=0
C.CX≠0或ZF=1D.CX≠0或ZF=0
!
!
!
10.8088/8086存储器分段,每个段不超过(C)
A.64K个字B.32K个字节
C.64K个字节D.1兆个字节
11.若AX=-15要得到AX=15应执行的指令是(A)
A.NEGAXB.NOTAX
C.INCAXD.DECAX
12.8086/8088系统执行传送指令MOV(A)
A.不影响标志位B.影响DF方向标志
C.影响SF符号标志D.影响CF进位标志
?
?
?
?
13.下列指令中操作数在代码段中的是()
A.MOVAL,42HB.ADDAL,BL
C.SUB[BX],DID.INC[DI]
14.表示过程定义结束的伪指令是()
A.ENDPB.ENDS
C.ENDD.ENDM
15.设(SS)=338AH,(SP)=450H,执行PUSHBX,和PUSHF--(P-105先将SP-2,然后标志寄存器的内容(16位)压入堆栈)两条指令后,堆栈顶部的物理地址是(A)
A.33CECHB.33CF2H
C.33CF4HD.33CE8H
16.要输入端口1234H中的8位数据,其指令应是(B)
A.MOVDX,1234HB.MOVDX,1234H
OUTDX,ALINAL,DX
C.INAX,1234H--(大于FFH)D.OUTDX,1234H
17.标志寄存器中属于控制标志位的是(B)
A.DF,OF,SFB.DF,IF,TF
C.OF,CF,PFD.AF,OF,SF
?
?
?
18.用一条指令实现将寄存器BX和SI中的内容相加,结果送入AX中,这条指令是(B)
A.ADDAX,[SI][BX]B.MOVAX,[BX+SI]
C.ANDAX,[BX+SI]D.LEAAX,[BX][SI]
19.已知AX,BX中均为带符号数,当进行字(16位)相除时,下面指令或指令序列正确的是(D)
A.DIVBXB.CWD(16位(字)变32位(双字))
IDIVBX
C.XORDX,DXD.CBW(字扩展8位(字节)变16位(字))
DIVBXIDIVBX
20.下列指令执行后对源和目的操作数均无影响的是(D)
A.MOV[BX+2],AXB.SUBAX,2467H
C.SBB[SI],BXD.CMP(比较指令)AX,BX
21.下列有语法错误的语句是()
A.DB1234HB.DW4567H
C.DD′AB′,′CD′D.DB′ABCD′
22.设A=0.4H,B=0.8H,C=0.4,D=0.4Q--(8进制),它们之间的关系是(C)
A.C+D=BB.A+D=B
C.B=DD.A>C>D
23.标志寄存器中属于控制标志位的是(B)
A.DF,OF,SFB.DF,IF,TF
C.OF,CF,PFD.AF,OF,SF
24.8088/8086存储器分段,每个段不超过(D)
A.64K个字B.32K个字节
C.1兆个字节D.64K个字节
25.8086/8088系统执行传送指令MOV时(A)
A.不影响标志位B.影响DF方向标志
C.影响SF符号标志D.影响CF进位标志
26.MOVAL,79
ADDAL,0B1H
上面指令执行后,设置的标志位CF和OF的值是(D)
A.CF=0,OF=1B.CF=1,OF=1
C.CF=0,OF=1D.CF=1,OF=0
27.下列指令执行后对源和目的操作数均无影响的是(D)
A.MOV[BX+2],AXB.SUBAX,2467H
C.SBB[SI],BXD.CMPAX,BX
28.表示过程定义结束的伪指令是()
A.ENDPB.ENDS
C.ENDD.ENDM
29.下列有语法错误的语句是()
A.DB12HB.DW4567H
C.DDˋBCDˊD.DBˋCDˊ
30.DB1DB8DUP(2DUP(3),3DUP
(2))
┇
MOVAX,WORDPTRDB1[04H]
上面指令执行后,AX的内容是()
A.0302HB.0203H
C.0202HD.0303H
31.BUF1DB3DUP(0,2DUP(1,2),3)
COUNTEQU$-BUF1
符号COUNT等价的值是()
A.6B.18
C.16D.8
32.DA1DW2A05H
DA2DB0FAH
┇
MOVAL,BYTEPTRDA1
SUBDA2,AL
上述指令执行后,DA2中的内容是()
A.0DAHB.0FAH
C.0F5HD.0D0H
33.设(SS)=338AH,(SP)=450H,执行PUSHBX,和PUSHF两条指令后,堆栈顶部的物理地址是(A)
A.33CECHB.33CF2H
C.33CF4HD.33CE8H
34.设(SP)=0028H,执行段内返回指令RET6后(P--145),SP的内容是(C)
A.0036HB.0022H
C.0030HD.0020H
35.假设存储器中从7462H单元开始的四个相邻字节单元中的内容依次是32H,46H,52H,0FEH,则存放字数据OFE52H的字地址是( C )
A.7462HB.7463H
C.7464HD.7465H
?
?
36.下列寄存器组中,在访问存储器操作数地址时,可以提供偏移地址的是( C )
A.BP、BX、SI、DIB.AX、BX、CX、DX
C.SP、IPD.BX、SI、DI、DS
?
?
?
37.当堆栈为空时,如SS=0805H,SP=40H,栈底字单元的物理地址是( )
A.08090HB.08089H
C.0808EHD.08450H
38.执行POPBP指令时,源操作数的物理地址表达式是( A )
A.16*SS+SPB.16*SS+BP
C.16*DS+BPD.16*CS+BP
39.设(AL)=63H(BL)=29H执行下面指令后( )
SUBAL,BL
DAS
AX的内容是
A.(AX)=0304HB.(AX)=0034
C.(AX)=0034HD.(AX)=0304
40.设BX=1234H,DS=2000H,(21234H)=5678H,则指令“LEASI,[BX]”执行后的结果是
( )
A.SI=5678HB.SI=1234H
C.SI=2000HD.SI=3234H
41.设DF=0,SI=20H,CX=10,执行REPLODSW指令后,SI中的内容是( )
A.20HB.30H
C.34HD.40H
42.MOVBX,OFFFEH
NEGBX
NOTBX
上述三条指令执行后,BX中的内容是( )
A.-1B.-2C.-3D.-4
43.ORG100H
NUMEQU8042H
DA1DB56H
MOVBX,0FFSETDA1
上述程序段执行后BX中的值是( )
A.56HB.100HC.101HD.102H
44.设SP的初值为1000H,执行指令PUSHAX后SP的值是()
A.0FFFHB.1001H
C.0FFEHD.1002H
45.下列指令执行后既能使AX=0同时又使CF=0,OF=0的是()
A.XORAX,AXB.ANDAX,AX
C.ORAX,AXD.TESTAX,0
46.汇编语言源程序,可以是()
A.可以直接由机器执行
B.必须由编译程序生成目标程序才能执行
C.必须由解释程序生成目标程序才能执行
D.必须由汇编程序汇编成目标程序才能执行
47.ORG200H
BUFDB12H,34H
MOVAX,WORDPTRBUF
上述指令语句执行后AX中的内容是()
A.3412HB.1234H
C.0200HD.0012H
48.下列寄存器组中在存储器操作数寻址时可用于提供偏移地址的是( )
A.AX,BX,CX,DXB.SP,BP,SI,DI
C.CS,ES,DS,SSD.BX,BP,SI,DI
49.某存储单元的段地址是0AB90H,偏移地址是1234H,该存储单元的物理地址是( )
A.0BDC4HB.0ACB34H
C.0AD134HD.1CED0H
50.要使BL中的低四位变反,高四位不变,应执行指令( )
A.NOTBLB.ORBL,0FH
C.ANDBL,0FHD.XORBL,0FH
51.设执行前SI=1000H,DS=2000H,存储单元(21000H)=1245H,下面二条指令分别执行后BX中的值各是多少?
①MOVBX,[SI]
②LEABX,[SI]
52.假设DS=2000H,COUNT=0100H,SI=0030H,指令MOVAX,COUNT[ST]
①写出源操作数的物理地址?
②该指令可否写成MOVAX,[COUNT+SI]?
53.下面指令有无错误?
若有错,是什么错误?
①MOVAX,[SI][DI]
②CMP[SI],[BX]
54.假设某数据段的段名为DATA,段内有一变量BUF,请分别用MOV指令写出与下述二
条语句等效的语句。
(1)MOVAX,DATA
(2)LEABX,BUF
55.设MY_DATA为数据段段名
(1)MY_DATA应送到哪个段寄存器中?
(2)MY_DATA送到相应的寄存器中去,用什么指令?
56.某数据段中有语句DB′AB′,0,0,′CD′,0,0;请分别用DW和DD伪指令改写它。
57.请写出下列指令中存贮器操作数的物理地址表达式。
①MOVAX,20H[BX][SI]
②ADDCS:
[DI],26H
58.执行下列两条指令后,回答问题。
MOVAL,8AH
ADDAL,0B7H
(1).(AL)=H,状态标志位(CF)=,(ZF)=,(OF)=。
(2).若参加运算的两个操作数均为无符号数,则AL中的运算结果是否正确。
(填“是”或“否”)。
(3).若参加运算的两个操作数均为带符号数,则AL中的运算结果是否正确。
(填“是”或“否”)。
59.已知BX=5E5CH,CX=8303H,CF=1
RORBX,CL
XORBH,CH
ROLBX,CL
程序段执行后,BX=,CF=。
60.MOVAL,01H
RORAL,1
ORAL,AL
NEGAL
上述程序段执行后AL=,CF。
61.现有下列程序段:
xxDB73,59,61,45,81
:
:
MOVAL,xx
MOVSI,OFFSETxx
MOVCX,4
LOOP1:
INCSI
CMPAL,[SI]
JAELOOP2
XCHGAL,[SI]
LOOP2:
DECCX
JNZLOOP1
MOVBL,AL
试问上述程序段的主要功能是:
,程序运行后,(BL)=。
62.MOVAL,0FH
XORAL,0FFH
MOVCL,7
SHRAL,CL
(1)上述程序段执行后AL=;
(2)若将指令SHR换成ROR指令后,那么执行后AL=。
63.读程序,说明程序功能。
STR1DB‘ABUDNTR’
NUMEQU$-STR1
STR2DB7DUP(?
)
MOVAX,SEGSTR1
MOVDS,AX
MOVES,AX
MOVSI,OFFSETSTR1
MOVDI,OFFSETSTR2
MOVCX,NUM
CLD
REPMOVSB
功能:
64.DA_WORDEQUWORDPTRDA_BYTE
DA_BYTEDBOABH,89H
·
·
·
SHRDA_WORD,1
MOVDX,DA_WORD
SHLDA_BYTE,l
MOVCX,DA_WORD
上述指令序列执行后,CX=,DX=。
65.设A、B均为长度为10的字节数组,DS、ES已指向同一组数据段
ADB1,2,3,4,5,6,7,8,9,0AH
BDB0AH,9,8,7,6,5,4,3,2,1
·
·
·
LEASI,A
LEADI,B
MOVCX,10
CLD
LOP:
LODSB
XCHGAL,[DI]
XCHGSI,DI
DECDI
STOSB
XCHGSI,DI
INCDI
LOOPLOP
上述程序段执行后,
(1)程序段完成什么功能?
(2)A和B两个字节数组的内容是什么?
66.已知AL的值为0—F中一位十六进制数
HECAPROCFAR
CMPAL,10
JCKK
ADDAL,7
KK:
ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
RET
HECAENDP
请回答:
(1)该子程序完成什么功能?
(2)如调用子程序时,AL=3,程序执行后,DL=;
(3)如调用子程序时,AL=0FH,程序执行后,DL=。
67.AR1DB‘ABCDEFGH’
AR2DBO
MOVAH,1
INT21H;键盘输入
ANDAL,0FH
DECAL
LEABX,AR1
XLATAR1
MOVAR2,AL
①假设键盘输入数字4,则执行后(AR2)=____________;
②执行后CF=____________。
68.MOVAX,7452H
ADDAL,AH
DAA
XCHGAH,AL
SUBAL,AH
DAS
程序段运行后,AX=____________,CF=____________。
69.已知AX=7865H,BX=89AAH
CLC
ADDAX,BX
ORBX,AX
RCRAX,1
RCLBX,1
程序执行后,AX=____________BX=____________CF=____________
70.①ANDAL,0FAH
XORAL,0FFH
②XORAL,0AFH
ORAL,50H
阅读上述指令,分别回答各指令序列完成什么功能?
71.阅读下列程序,回答问题。
BEGIN:
INAL,5FH
TESTAL,80H
JZBRCH
MOVAH,0
BRCH:
JMPSTOP
STOP:
HLT
在情况下,(AH)=0。
72:
MOVBX,1
XORAX,AX
MOVCX,5
NEXT:
ADDAX,BX
INCBX
LOOPNEXT
上述程序段执行后AX=_______;BX=_______。
73.完整段定义格式与简化段定交格式的互相转换。
例:
将课本P141例5-1的源程序转换成简化的段定交格式。
并说明该程序的功能。
74.设(SP)=0028H,执行段内返回指令RET6后,SP的内容是()
A.0036HB.0022HC.0030HD.0020H
75.假设执行ADD指令后AX=6EH,再执行AAA指令,AX中的值是()
A.14HB.0104H
C.74HD.04H
76.执行PUSHBP指令时,目的操作数的物理地址表达式是( )
A.16*SS+BPB.16*DS+BP
C.16*CS+IPD.16*SS+SP