第四章汇编语言程序设计题库.docx
《第四章汇编语言程序设计题库.docx》由会员分享,可在线阅读,更多相关《第四章汇编语言程序设计题库.docx(47页珍藏版)》请在冰豆网上搜索。
第四章汇编语言程序设计题库
第四章汇编语言程序设计练习题
一、单项选择题(共40题)
1、关于指令MOV[BX],AX,以下叙述正确的是:
A、目的操作数是寄存器操作数
B、源操作数是内存操作数
C、目的操作数是内存操作数
D、源操作数是立即操作数
2、执行下列程序,设(SS)=2000H,执行后(SP)=?
MOVSP,2000H
MOVAX,1234H
PUSHAX
A.21FFEHB.20000HC.22000HD.22002H
3、运算型指令的寻址和转移型指令的寻址,其不同点在于
A.前者取操作数,后者决定程序的转移地址
B.后者取操作数,前者决定程序的转移地址
C.两者都是取操作数
D.两者都是决定程序的转移地址
4、MOV(),300
A、WORDPTR[DX]B、BYTEPTR[BX]C、WORDPTR[BP]D、AL
5、汇编语言程序代码必须位于代码段中,形成代码段物理地址的寄存器对是
A.SS:
SPB.CS:
IPC.DS:
BXD.CS:
BX
6、若定义DATDW'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是()
A.0041HB.4100H
C.××41HD.4l××H
7、执行下面的程序段后,(AX)=()
TABDW
1,2,
3,4,5,6
ENTRY
EQU3
MOVBX,OFFSETTAB
ADDBX,ENTRT
MOVAX,[BX]
A.0003HB.0300H
C.0400HD.0004H
8、下面表示段定义结束的命令是()
A.ENDP
B.ENDS
C.ENDM
D.END
9、设AL、BL,中都是带符号数,当
后应选用正确的条件转移指令是()
AL<BL
时转至
NEXT
处,在
CMPAL
,BL
指令
A.JBEB.JL
C.JNAD.JNLE
10、指令LOOPZ它的循环执行条件是()
A.CX不等于0且ZF=0B.CX不等于0或ZF=0
C.CX不等于0且ZF=1D.CX不等于0或ZF=1
11、执行下列指令后,SP寄存器的值是()
MOVSP,1000H
PUSHAX
A.0FFEHB.0FFFH
C.1001HD.1002H
12、完成将有符号数BX的内容除以2的正确指令是()
A.SHRBX,1B.SARBX,1
C.RORBX.1D.RCRBX,1
13、汇编语言源程序经汇编后不能直接生成()
A.OBJ文件B.LST文件
C.EXE文件D.CRF文件
14、执行下列程序(AL)=()。
DATASEGMENT
TAB-DADB‘0123456789’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETTAB-DA
MOVAL,04
XLAT
A.52B.33HC.30HD.12
15、设BL=05H,要使结果BL=0AH,应执行的指令是()
A.N0TBLB.ANDBL,0FH
C.XORBL,0FHD.ORBL,0FH
16、用MOV指令将十进制数89以组合型BCD码格式送入AX,正确使用的指令是()
A.MOVAX,0089B.MDVAX,0809H
C.MDVAX,0089HD.MOVAX,0809
17、完成BX—CX结果送AX的错误操作是()
A.SUBBX,CX
MOVAX,BX
B.SUBAX,BX
SUBAX,CX
C.XCNGAX,BX
SUBAX,CX
D.MOVAX,BX
SUBAX
,CX
18、表示一条指令的存储单元的符号地址称()
A.标号B.变量C.偏移量
D.类型
19、变量的类型属性如下,下面错误的类型是
A.字节型B.字型
C.字符型D.双字型
()
20、现用数据定义伪指令定义数据:
BUFDB4DUP(0,2DUP(1,0));
定义后,存储单元中有数据0100H的字单元个数是()
A.4B.3C.8D.12
21、分析下面指令序列执行后的正确结果是()
MOVBX,OFFFCH
MOVCL,2
SARBX,CL
A.3FFFH
B.0FFFFH
C0FFFCH
D.0FFF5H
22、下面指令序列执行后完成的运算,正确的算术表达式应是
MOVAL,BYTEPTRX;
SHLAL,1;
DECAL;
MOVBYTEPTRY,AL;
(
)
A.y=2x+1
B.x=y2+1
C.y=2x-1
D.x=y2-1
23、
TESTVAR,55H
JZZERO
ZERO:
......
上述程序段中,当变量
满足条件转至ZERO处(
)
VAR的内容为何值时,执行
JZZERO条件转移指令后,可
A.(VAR)=0
C.VAR中第
D.VAR中第
B.(VAR)=55H
0,2,4,6位为0
l,3,5,7位为0。
24、交换寄存器SI、DI的内容,正确的程序段是()
A.PUSHSIB.PUSHSI
PUSHDIPUSHDI
POPSIPOPDI
POPDIPOPSI
C.MOVAX,SID.MOVAX,SI
25、完成41H送[2100H]、42H送[2101H]的正确程序段是
A.MOVAL,41HB.MOVSI,2100H
MOV[2100H],ALMOV[Sl],’A’
INCALINCSI
MOV[2100H],ALMOV[S1],’B’
C.MOVAX,4241HD.MOVAX,‘AB’”
MOV[2100H],AXMOV[2100H],AX
()
26、堆栈的工作方式是()
A.先进后出
B。
后进先出
C.先进先出
D.后进先出
27、字变量
ARRAY
的偏移地址
(或有效地址
)送寄存器
BX
的正确结果是
()
A.LEABX
C.LESBX
,ARRAY,ARRAY
B.LEABXD.MOVBX
,OFFSETARRAY
.ARRAY
28、在用汇编语言开发软件过程中,首先用编辑程序建立扩展名为
经汇编生成扩展名为(F)的目标程序文件,最后连接生成扩展名为
A.TXTB.DOSC.ASMD.EXE
()的文件,
()的可执行文件。
E.COM
F.OBJ
G.PRG
H.BAK
29、DEBUG
A.E
调试工具中,用来显示内存的命令是
B.RC.TD.D
(
)
30、已知
1000H处有一条指令
JNCrel
,其机器代码是××
H、73H,CF=0,试问执行该指
令后,(IP)=()
A.0FF8DHB.1073HC.0FF8BHD.1075H
31、执行下列程序,设
(SS)=2000H,执行后
AL中的数据在内存地址(
)
MOVSP,2000H
MOVAX,1234H
PUSHAX
A.2000HB.22000HC.21FFEHD.21FFH
32、执行下列程序,设(SS)=2000H,执行后
AH中的数据在内存地址(
)
MOVSP,2000H
MOVAX,1234H
PUSHAX
A.20000HB.21FFFHC.22000HD.21FFEH
33、INC指令不影响()标志位。
A.OFB.CFC.SFD.ZF
34、将AL中带符号数乘
10送AL,正确的程序段是(
)
A
.SALAL,1
B
.ADDAL,AL
MOVBL
,AL
MOVBL,AL
SALAL
,1
ADDAL,AL
SALAL
,1
ADDAL,AL
ADDAL
,BL
ADDAL,AL
C
.MOVCL,4
D
.ADDAL,AL
MOVBL
,AL
ADDAL,AL
SALAL
,CL
ADDAL,AL
ADDAL
,BL
ADDAL,AL
ADDAL,AL
35、在ADD指令中,两个操作数的物理位置不可以安排在()
A.两个主存储单元B.一个主存储单元和一个数据寄存器
C.两个数据寄存器D.一个堆栈单元和一个数据寄存器
中。
36、下面表示汇编源程序结束的命令是()
A.ENDPB.ENDS
C.ENDMD.END
37、在汇编语言中()用于定义常数,变量,内存空间的分配和定位.
A.伪指令B.机器指令
C.宏指令D.微指令
38、伪指令一般在()被解释。
A.程序运行时B.编译程序时
C.连接时D.编写源程序时
39、若定义DATADB0A5H,5BH,在指令MOVBX,()DATA
A.WORDB.BYTEPTR
中填充,使指令正确执行。
C.WORDPTR
D.OFFSET
40、若定义A.12H
DATADW1234H,执行MOVBL,BYTEPTRDATA指令后,
B.34HC.23HD.14H
(BL)
=()
二、填空题(共
50个空)
1、立即数一定存放在
(1)段中
2、如果在一个程序开始执行以前CS=-A7F0H,IP=2B40H试问该程序的第一个字的物理地址
2
3、已知1000H处有一条指令JNCrel,其机器代码是××H、73H,CF=0,试问执行该指
令后,(IP)=(3)
4、现有DS=2000H,BX=0100H,SI=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,
(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。
(1)MOVAX,[1200H];AX=(4
)
(2)MOVAX,[BX];AX=(
5
)
(3)MOVAX,1100[BX]
;AX=(
6
)
(4)MOVAX,[BX][SI]
;AX=(
7
)
(5)MOVAX,1100[BX][SI]
;AX=(
8)
5、指示性语句的格式为
(9)
。
6、执行下列程序(AL)=(10)H。
DATASEGMENT
TAB-DADB‘0123456789’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBX,OFSETTAB-DA
MOVAL,04
XLATTAB-DA
7、对于下面的数据定义:
A1DW20DUP(?
)
A2DB20DUP(?
)
A3DB‘98765432l’
MOVAX,LENGTHA1
MOVBX,LENGTHA2
MOVCX,LENGTHA3
各条指令执行后,相应寄存器的内容为:
AX=(11),BX=(12),CX=(13)
8、分析以下程序段:
SUBAX,BX
JNCL3
JNOL4
JMPSHORT
如果AX和BX的内容给定如下:
AXBX
(1)147B80DC
(2)D0239FD0
(3)94B7B568
该程序执行后,程序转向(14);(15);(16)。
9、执行下列程序段,
MOVSP,2000H
MOVAX,0F0H
MOVSI,1234H
MOVDX,5678H
PUSHSI
POPDI
SHLDX,1
TESTAX,DX
PUSHDX
SP=(17);
10、执行下列程序段:
MOVSP,2000H
MOVAX,0F0H
MOVSI,1234H
MOVDX,5678H
PUSHSI
POPDI
SHLDX,1
TESTAX,DX
PUSHDX
DH内容所在内存的偏移地址为(18);
11、有下列数据定义语句:
DATASEGMENT
ADDRDWNUMBER
NUMBERDB10
ARRAYDB5DUP(0)
TABLEDDRT1,RT2;(RT1,RT2是标号)
DATAENDS
则变量ADDR中存储的内容是(19),变量TABLE占用(20)个字节
12、根据下面的指令序列,CX寄存器中的值应该是(21)。
SHR1DW'AB'
SHR2DB16DUP(?
)
CNTEQU$-STR1
MOVCX,CNT
13、执行下列指令后:
MOVAX,1234H
MOVCL,4
ROLAX,CL
DECAX
MOVCX,4
MULCX
寄存器AH的值是(22),寄存器AL的值是(23).
14、对于下面的数据定义,指令执行后,AX=(24)、BX=(25)、CX=(26)、DX=(27)、SI=
(28)
TABLE1DB?
TABLE2DW20DUP(?
)
TABLE3DB‘ABCD’
MOVAX,TYPETABLE1
MOVBX,TYPETABLE2
MOVCX,LENGTHTABLE2
MOVDX,SIZETABLE2
MOVSI,LENGTHTABLE3
15、执行下列程序:
MOVAX,0
MOVBX,1
MOVCX,100
A:
ADDAX,BX
INCBX
LOOPA
HLT
执行后的结果为(BX)=(29),(AX)=(30)。
16、若定义VARDB2DUP(1,2,2DUP(3),2DUP
(1)),则在VAL存储区内前
5个单元的
数据是(31)。
17、完成输出显示一个字符的
DOSint21h系统功能调用是(
32
)号。
18、执行返回指令,退出中断服务程序,这时返回地址来自(
33
)
19、已知:
(AX)=0202H、(ES)=2000H、(BX)=3000H、(SI)=2060H、(25060H)=00B0H,执行指令XCHGAX,ES:
[BX+SI],则AX=(34),(25060H)=(35)
20、下列程序段执行后,寄存器AX=(36),BX=(37)和CX=(38)的内容分别是多少?
ORG0202H
DA_WORDDW20H
MOVAX,DA_WORD
MOVBX,OFFSETDA_WORD
MOVCL,BYTEPTRDA_WORD
MOVCH,TYPEDA_WORD
21、假设数据段的定义如下:
P1DW?
P2DB32DUP(?
)
PLENTHEQU$-P1
试问PLENTH的值为(39)它表示的意义是(40)
22、假设BX=54A3H,变量VLAUE中存放的内容为
68H,确定下列各条指令单独执行
BX的值。
(1)XORBX,VALUE;BX=(41)
(2)ORBX,VALUE
;BX=(42)
(3)ANDBX,00H
;BX=(43)
(4)SUBBX,VALUE;BX=(44)
(5)XORBX,0FFH
;BX=(45)
(6)TESTBX,01H
;BX=(46)
23、请用DEBUG调试软件的反汇编命令,反汇编在从2060:
100H开始的长度为
8字节的程序
段,该命令为(
47)。
24、查看内存数据段中偏移地址为
1000H的内容,DEBUG调试命令为(
48)
25、在DEBUG调试命令中,N命令是的功能是(
49),L命令的功能是(
50)。
三、判断题(共30题)
1、8086/8088
微处理器有
14个16位寄存器
2、8086/8088
微处理器的
14个16
位寄存器每个都可分成
2个8位的寄存器
3、8086/8088
微处理器的8
个16位的通用寄存器可分为:
4个数据寄存器、
2个指针寄存
器、2个变址寄存器
4、SUB指令和CMP指令的功能相同。
5、MOVAX,0与XORAX,AX功能相同。
6、SHL和SAL指令功能相同。
7、MOVAX,0FFFFH
INCAX以上两条指令执行后CF=1。
8、有以下定义的数据段,判断该数据段定义下的指令序列正误:
DATASEGMENT
STR1DB1,2,3,4,5
STR2DB‘12345’
COUNTEQU20
NUMBDB3DUP(6)
NUMWDW20H,80H
TABLEDW0
DATAENDS
MOVAX,STR1
9、数据定义同第8题,判断该数据段定义下的指令序列正误
MOVBX,OFFSETNUMB
MOV[BX],’+’
10、数据定义同第8题,判断该数据段定义下的指令序列正误
MOVDL,NUMW+2
11、数据定义同第8题,判断该数据段定义下的指令序列正误
MOVBX,OFFSETSTR1
MOVDH,BX+3
12、数据定义同第8题,判断该数据段定义下的指令序列正误
INCCOUNT
13、数据定义同第8题,判断该数据段定义下的指令序列正误
MOVSTR1,STR2
14、数据定义同第8题,判断该数据段定义下的指令序列正误
MOVAX,NUMW+2
MOVDX,0
DIVNUMW
15、数据定义如下,指出指令的正误:
ORG100H
DATADB20
DW30
DD40
MOVBX,OFFSETDATA
MOVAL,[BX+5]
16、数据定义同15题,指令正误:
MOVAX,DATA
17、数据定义同15题,指令正误:
MOVAX,WORDPTRDATA+1
18、数据定义同15题,指令正误:
MOVAX,DATA[BX][SI]
19、数据定义同15题,指令正误:
MOVBX,OFFSETDATA[BX][SI]
20、数据定义同15题,指令正误:
LEAAX,DATA[BX][SI]
MOVAL,[AX]
21、数据定义如下,指出指令的正误:
AEQU500
BDB?
CDW64HMOVA,AX
22、数据定义如21题,指出指令的正误:
MOVB,AX
23、数据定义如21题,指出指令的正误:
CMPC,AL
24、数据定义如21题,指出指令的正误:
CMPB,C
25、符号及变量定义如下,指出指令的正误:
26、指出指令正误:
SALCL,5
27、指出指令正误:
JMPEND
28、指出指令正误:
JNABNEXT
29、指出指令正误:
LOOPA5
30、指出指令正误:
ADDAX,[BX][BP]
四、简答题(共20题)
1、简述汇编语言程序的开发过程。
2、内存操作数有哪几种寻址方式?
用MOV指令的源操作数举例进行说明。
3、简述汇编语言、高级语言、机器语言的区别。
4、简述汇编语言的指令语句和伪指令语句的区别。
5、汇编语言的标号代表什么?
有哪三种属性?
6、汇编语言中变量的用哪条伪指令进行定义?
有哪三种属性?
7、已知有如下定义的数据段:
DATASEGMENT
ORG0100H
TABLEDW0FF00H
DATAENDS
试分别分析以下两条指令的执行结果?
并指出区别。
8、有如下定义的变量:
DATASEGMENT
ARRAYDW1000H,2000H,3000H,4000H,5000H
BUFDW?
DATAENDS
请分别完成以下操作:
将ARRAY的偏移地址送BX;将ARRAY的第一字节把内容送AL;
9、已知某数据段中有
COUNT1EQU16H
COUNT2DW16H
下面两条指令有何异同点:
MOVAX,COUNT1
MOVBX