2012汇编语言试题A
一.单项选择题(每题1分,共20分)
1.指令指针寄存器是(C)。
A)BP B)SP C)IP D)PSW
2.DA1 DB 67H
NUM EQU 80H
则执行AND DA1,NUM语句后DA1中的内容是(D)。
A)E7HB)80HC)67HD)0
3.与指令MOV AX,NOT 0F0H等效的汇编语言指令是(B)。
A)MOV AX,0FH B)MOV AX,0FF0FH
C)MOV AX,000FH D)MOV AX,0F0H
4.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令是(D)。
A)CMP B)SUB C)AND D)MOV
5.将高级语言的程序翻译成机器码程序的实现程序是(A)。
A)编译程序B)汇编程序
C)解释程序D)目标程序
6.在程序顺序执行时,每取一条指令语句,IP指针增加的值是(D)。
A)1B)2C)3D)由指令长度决定的
7.假设字节单元(02398H)=12H,(02399H)=34H,(0239AH)=56H,则(02399H)字单元的内容是(C)。
A)3412H B)3456H C)5634H D)1234H
8.INC WORD PTR [BX] 指令中的操作数的数据类型是(A)。
A)字B)双字C)字节D)四字
9.在循环程序中使用LOOP指令作为循环结束的判断,其计数值一般应放在寄存器是(B)。
A)DX B)CX C)BP D)IP
指示汇编程序如何汇编的指令10.在汇编语言程序设计中,伪指令OFFSET的含义是回送变量或标号的(B)。
A)段地址值B)偏移地址值
C)物理地址值D)操作数
11.下面的数据传送指令中,错误的操作是(D)。
A)MOV SS:[BX+DI],1000H B)MOV DX,1000H
C)WORD PTR [BX],1000H D)MOV DS,2000H
12.在下列指令的表示中,不正确的是(C)。
A)MOV AL,[BX+SI]B)JMP SHORT DON1
C)DEC [BX]D)MUL CL
13.在一列段寄存器中,堆栈段寄存器是(D)。
A)ES B)CS C)DS D)SS
14.下面指令执行后,改变AL 寄存器内容的指令是(D)。
A)CMP AL,BL B)OR AL,AL
C)TEST AL,BL D)AND AL,BL
15.指令JMP FAR PTR LOP1属于(C)。
A)段内转移直接寻址B)段内转移间接寻址
C)段间转移直接寻址D)段间转移间接寻址
16.设SP初值为1000H,执行指令PUSH BX 后,SP的值是(D)。
A)1002H B)0FF8H C)FFFH D)0FFEH
17.完成将带符号数AX的内容除以2的正确指令是(D)。
A)RCR AX,1B)ROR AX,1
C)SHR AX,1D)SAR AX,1
18.在字符串操作指令中,源串操作数放在的寄存器是( D)。
A)CS B)SS C)DS D)ES
19.下述指令中对标志寄存器PSW中标志位不产生影响的指令是( D)。
A)INC SI B)TEST AL, 0FH
C)SAR BL,1D)JMP LOP
20.宏指令语句本身不生成目标代码, 它仅表示宏调用出现的( D)。
A)说明符B)位置C)代码格式D)宏体
二.填空题(每空2分,共10分)
1.在8086/8088汇编语言中,串操作指令中搜索字符串指令的助记符是(SCAS)。2.当发生除法溢出时,OF=(1)。
3.当源程序被汇编时,汇编程序对每个宏调用作(宏展开)。
4.DD伪指令中定义的每个操作数占有(4)个字节。
5.能被计算机直接识别的语言是(机器语言)。
三.简答题(每小题2分,共10分)
1.下列语句在存储器中分别为变量数据区分配多少个字节单元?
(1)VAR1 DD 10
(2)VAR2 DW 4 DUP(?),2
答:为VAR1分配4字节,为VAR2分配10字节。
2.在指令系统中,段内、段间返回均为RET指令。分别回答段内、段间返回所执行的操作。
答:段内RET指令从堆栈顶部弹出一个字的内容,送入IP;段间RET指令从堆栈顶部弹出两个字的内容,分别送入IP和CS。
3.下列两条语句有何区别?
X EQU 1000H
Y = 1000H
答:X不能多次赋值,Y可以多次赋值。
4.有符号定义语句如下:
ARRAY1 DB 3,6,9,‘123’
ARRAY2 DB 0
L EQU ARRAY2-ARRAY1
问L的值是多少?
答:6。
5.请指出下述两条伪指令语句的区别?
COUNT1 DB 48H
COUNT2 EQU 48H
答:COUNT1 作为地址,在该字节的存储单元中存放数据48H; COUNT2作为符号名,数据48H直接赋值给COUNT2。
四、程序分析题(每小题5分,共25分)
1.下述程序段执行后,AL的内容是什么?
MOV AX,00FFH
AND AX,0FFFH
OR AX,0F0FH
XOR AX,00FFH
答:00H
2.下述程序段执行后,AX寄存器的内容是什么?
MOV AX,0012H
MOV BX,0034H
MOV CL,8
ROL AX,CL
OR AX,BX
答:1234H
3.现的下列程序段:
ORG 0050H
DA1 DW56H,78H
DA2 EQU$ -DA1
DA3 DB?
…
LEA BX, DA3
MOV CX,DA2
MOV AX, DA2 SHR 1
问:(AX)=(),(BX)=(),(CX)=()。
答:(AX)=0002H, ------------ ( 2分)
(BX)=0054H, ------------ ( 2分)
(CX)=0004H. ------------ ( 1分)
4.设:
XOR AX,0
MOV BX,1
MOV CX,10
LOP:ADD AL,BL
INC BL
INC BL
LOOP LOP
问:(1)该程序完成的功能是什么?(2)程序执行后(AX)=()。答:(1)完成的功能是求10个奇数的累加和。------------ (3分)(2)(AX)=64H(或100)。------------ ( 2分)
5.现的下列程序段:
DATA SEGMENT
DA1 DW123H,456H,0AB00H
DA2 DB12H,34H,56H,0ABH
DB S –DA2
BUF DB10H DUP(1,2,3)
(1)
MOV BX,[0006]
AND BX,0FFH
AND BX,[BX]
上述指令执行后,BX=();
(2)
MOV DX,SIZE BUF
ADD DX,DA2+4
上述指令执行后,DX=()。
答:(1)BX=0314H;------------ ( 3分)
(2)DX=0114H。------------ ( 2分)
五、程序填空题(每题6分,共12分)
1.设已定义数据区如下:
DATA SEGMENT
DAX DB XXH
DAY DB?
DATA ENDS
下列程序段完成功能:判断变量DAX的值是否大于等于0。若大于等于0,则将DAY单元置为0FFH;否则,将DAY单元的值置为00H。请在空白处填上适当的指令(每一空白处只填一条指令)。
MOV AL,DAX
CMP AL,0
①______________________
MOV AL,0
②______________________
GRE:MOV AL,0FFH
LEE:MOV DAY,AL
答:①JGE GRE;------------ (3分)
②JMP LEE。------------ ( 3分)
2.下列程序段实现1+2+3+…+100的累加和,试在空白处填上适当的指令(每空白处只填一条指令)。
①__________________
MOV AX, 1
MOV BX, 2
LOP: ADD AX, BX
INC BX
②_________________
答:①MOV CX,63H;------------ ( 3分)
②LOOP LOP。------------ ( 3分)
六、编程题(共23分)
1.假设数据区定义如下:
DATA SEGMENT
ARRAY DB ‘THIS IS MASM PROGRAM’,‘$’
DATA ENDS
编写程序段以ARRAY为首地址的字符串显示输出。(8分)
答:
MOV AX, DATA
MOV DS, AX ------------ ( 2分)
...
MOV DX, OFFSET ARRAY ------------ ( 2分)
(或LEA DX, ARRAY)
MOV AH, 09H ------------ ( 2分)
INT 21H ------------ ( 2分)
2.完成将AX和BX中的两个带符号数相加,如果没有溢出,转移到OK处执行。试编写一段程序。(5分)
答:
ADD AX,BX ------------ ( 3分)
JNO OK ------------ ( 2分)
3.以ARAAY为其始地址的字节存储单元中存放有N个符号数据,请编写程序出其中最大值和最小值分别送入BL和AL寄存器中。(10分)
答:
DATA SEGMENT
ARRAY DB 25,33,98,-2……;N个有符号数字
COUT EQU $ -ARRAY
DATA ENDS ------------ ( 1分)
CODE SEGMENT ------------ ( 1分)
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX ------------ ( 1分)
LEA SI, ARRAY ------------ ( 1分)
MOV CX, COUT
XOR AX, AX
MOV BL, AL
LOP1: CMP AL, [SI])
JGE LOP2 ------------ ( 1分)
MOV AL, [SI]
JMP LOP3 ------------ ( 1分)
LOP2: CMP BL, [SI]
JLE LOP3 ------------ ( 1分)
MOV BL , [SI]
LOP3: INC SI
LOOP LOP1 ------------ (1分)
MOV AH, 4CH
INT 21H ------------ ( 1分)
CODE ENDS ------------ ( 1分)
END START
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论