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小时内删除。