2012汇编语言试卷A参考答案

发布时间 : 星期五 文章2012汇编语言试卷A参考答案更新完毕开始阅读

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)E7H B)80H C)67H D)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)1 B)2 C)3 D)由指令长度决定的 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,1 B)ROR AX,1 C)SHR AX,1 D)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,1 D)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 DW 56H,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 DW 123H,456H,0AB00H DA2 DB 12H,34H,56H,0ABH DB S –DA2 BUF DB 10H 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 JNO

AX,BX ------------ ( 3分 ) 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

联系合同范文客服:xxxxx#qq.com(#替换为@)