汇编语言试题(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言试题(1)
一、选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每题2分,共36分)
1.执行指令 MOV AL,[BP] 时,所读取的数据应在 ( )
A. 代码段中
B.数据段中
C. 堆栈段中
D. 附加数据段中
2.执行如下程序:MOV AX,0
MOV BX,1
MOV CX,100
A:ADD AX,BX
INC BX
LOOP A
执行后BX中的内容为 ( )。
A.99
B. 100
C. 101
D.102
3. .将AX中有符号数除以4的正确指令序列是( )。
A. SHR AX,1
B. SAR AX,1
C.IDIV 4
D.DIV 4
SHR AX,1 SAR AX,1
4.使8086/88的标志寄存器F中的中断标志IF置为关中断的命令是 ( )
A. CLI
B. STD
C. STI
D. CLD
5.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是()A.ADD BH,01H B.OR BH,01H C.XOR BH,01H D.TEST BH,01H
6. 数据段定义如下:
Data segments
V1 DB 4 DUP(2),1
COUNT EQU 10
V2 DD COUNT DUP(?)
Data ends
则该数据段在内存中所占的存储字节数目是()
A. 9 B. 45 C. 46 D. 10
7.在下列程序执行后,AL寄存器的值为 ( )。
A1 DB 5 DUP(2 DUP(2,0,1),3)
MOV AL,A1+6
A. 2;
B. 3;
C. 0;
D. 1
8.对于下列程序段:
AGAIN:MOV AL,[SI]
MOV ES:[DI],AL
INC SI
INC DI
LOOP AGAIN
也可用()指令完成同样的功能。
A. REP MOVSB
B. REP LODSB
C. REP STOSB
D. REPE SCASB
9.若汇编语言源程序中段的定位类型设定为PARA,则该程序目标代码在内存中的段起始地址应满足什么条件?( )
A. 可以从任意地址开始
B. 必须是偶地址
C. 必须能被16整除
D. 必须能被256整除
10.指令 MOV BYTE PTR 〔 BX+SI 〕, 0 中目的操作数的寻址方式是 ( ) 。
A. 立即寻址
B. 寄存器寻址
C. 寄存器间接寻址
D. 基址变址寻址
11.已知 SP=12EH ,执行段间返回指令 RET 后, SP 的值是 ( ) 。
A. 12AH
B. 12CH
C. 130H
D. 132H
12.在汇编语言程序中,对END语句的叙述正确的是()。
A. END语句是一可执行语句
B. END语句表示程序执行到此结束
C. END语句表示源程序到此结束
D. END语句在汇编后要产生机器码
13.已知CS=2300H,DS=2400H,执行下列指令序列PUSH CS ,POP DS后,CS 和 DS 值是 ( ).
A. CS=0 DS=2300H
B. CS=2400H DS=2300H
C. CS=2400H DS=2400H
D. CS=2300H DS=2300H
14.以寄存器DI间接寻址的存储器字节单元内容加1的指令是( )。
A. INC 〔DI〕
B. INC DI
C. INC BYTE PTR〔DI〕
D. ADD 〔DI〕,1
15.有指令MOV AX, 1234H,指令中的立即数1234H是存储在( )
A. 数据段
B. 代码段
C. 附加段
D. 堆栈段
16.设数据段中已有:
DA1 DB 12H,34H
DA2 DW 56H,78H
下面有语法错误的语句是()。
A. ADR1 DW DA1
B. MOV DA1+1,AX
C. MOV BYTE PTR DA2+1,AL
D. MOV WORD PTR DA1+1,AX
17.IBM PC微机中,有符号数是用()表示的
A.原码B.补码C.反码D.BCD码
18.把汇编源程序变成代码程序的过程是()
A.编译B.汇编C.编辑D.链接
二、填空题(每空1分,共14分)
1、请用一条指令实现如下操作:
(1)将AX中划‘X’的位清0
15 5 4 0
┏┳┳┳┳┳┳┳┳┳┳━┳━┳┳┳┳┓
┃┃┃┃┃┃┃┃┃┃┃X┃X┃┃┃┃┃ 指令:__【1】
┗┻┻┻┻┻┻┻┻┻┻━┻━┻┻┻┻┛
(2)寄存器AX的低四位取反:____【2】_____________
2.已知X1 DW 0ABCDH,若要将X1用DB定义,原来数据区中
的内容保持不变,则
X1 DB____【3】________,___【4】_________.
3.已知BX=1000H,执行:MOV AX,BX
NEG AX
ADD BX,AX
则程序执行后,AX=___【5】___,BX=____【6】,CF=___【7】____。
4. 已知DS=2000H,CS=4000H,SI=1000H,
(21000H)=78H,(21001H)=01H,(21002H)=00H,(21003H)=12H
则下面两条无条件转移指令转移目标的物理地址分别是【8】,和____【9】____。
JMP WORD PTR[SI]
JMP DWORD PTR[SI]
5.假设程序中的数据定义如下:
FLD1 DB 10DUP(?)
FLD2 DW 100H,200H,300H
FLD3 DB 4,5,7,9
按要求写出合适的指令,每小题只能写一条指令。
(1)将FLD2的第4个字节送入AL。
【10】。
(2)用伪指令写出FLD1和FLD2两者总字节数COUNT。
【11】
6.调用程序与子程序之间的参数传递方法有四种,即堆栈法、(【12】)、(【13】)和(【14】)。
三、程序分析(共30分)
1. (4分,每空2分) MOV DL,AL
NOT DL
TEST DL,04H
JE NEXT
┇
NEXT:…
若上述程序段执行时产生分支,说明AL中的数第【1】位一定为1?程序段执行后CF 是【2】。
2.(2分)己知宏指令为:
SHIFT MACRO RR,COUNT
MOV AX,COUNT
IF RR LE 64
MOV CL,3
SHR AX,CL
IF RR LT 16
MOV CL,6
ENDIF
ENDIF
ENDM
宏调用为:SHIFT 15,7FFFH
写出宏扩展后的等效源程序段。
【3】
3.(6分,每空2分)执行下列程序段后
ORG 1221H
NUM DW 12H
┇
MOV BX,OFFSET NUM
MOV CL,BYTE PTR NUM+1
MOV CH,TYPE NUM
MOV AX,NUM
请问:(AX)=_【4】_____,(BX)=__【5】____,(CX)=_【6】_____。
4.(6分,每空2分)现有一子程序:
SUB1 PROC
TEST AL,80H
JE PLUS
TEST BL ,80H JNE EXITO JMP XCHANGE PLUS :TEST BL ,
80H
JE EXITO
XCHANGE :XCHG AL ,BL
EXITO :RET
SUB1 ENDP
试回答:(1)子程序的功能是【7】?
(2)若调用子程序前AL=9AH ,BL=77H ,则返回主程序时,AL=__【8】____,BL=__【9】____。
5. (6分,每空2分)UPDAT 为中断处理子程序,若中断分别发生在主程序的T1、T2、和T3处,则主程序执行完后AX 的值分别为_【10】____、_【11】____和_【12】____
main proc far
┇
MOV AX,5
OR AX,AX
(T1)--> JS L1
(T2)-->
JNS L2
(T3)-->
INC AX
JMP L2
L1: DEC AX
L2: CLI ┇ ret
main endp
6.DA1 DB ‘ABCDEFGHI ’ DA2 DB 9 DUP (0)┇
LEA SI ,DA1 LEA DI ,DA2 MOV CX ,9 CLD
LOP : LODSB SUB AL ,10H STOSB LOOP LOP
┇
程序执行后DA2各字节中的数据是【13】___。
7.DA1 DB 83H ,72H ,61H ,94H ,5AH ┇
MOV CX ,WORD PTR DA1
UPDAT PROC FAR
PUSH AX
PUSH BP
MOV BP,SP
MOV DX,8[BP]
OR DX,0080H
MOV [BP+8],DX
POP BP
POP AX
IRET
UPDAT ENDP
AND CX,0FH
MOV AL,DA1+3
SHL AL,CL
上述指令序列执行后,AL=___【14】____,CL=____【15】___。
四、程序填空(每空2分,共20分)
1.某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试在空白处填上适当的一条指令。
STRING DB‘COMPUTER’,‘$’
┇
MOV BX,0FFSET STRING
LOP:MOV DL,[BX]
MOV AH,02H
INT 21H
___【1】
___【2】___
JNE LOP
2.在下述程序段的每一空框内填入一个语句(不得修改其它语
句),以实现如下功能:字节变量STR中存放着一个字符串,以0DH 为结束标志,试求串长度并送字变量COUNT中。
LEA SI,STR
_【3】
XOR CX,CX
GOON: CMP AL,[SI]
_【4】
INC CX
_【5】
JMP GOON
NEXT: MOV COUNT,CX
3.程序功能:接收键盘上输入的一位十进制数,并显示该十进制数的二进制形式。
下面给出程序的一部分,在括号内填写适当的汇编指令,将程序补充完整。
cseg segment
assume cs:cseg,ds:cseg
start: mov ah,1
int 21h
sub al,30h
mov b1,a1
mov d1,0dh
【6】
int 21h
mov d1,0ah
mov ah,2
int 21h
【7】
next: sh1 b1,1
jc out1
mov d1,30h
jmp put
out1: 【8】
put: mov ah,2
int 21h
loop next
mov ah,4ch
int 21h
cseg ends
end start
4.在NUMW单元存放有一个0-65535范围内的整数,将该数除以500,商和余数分别存入QU1和REM单元,请在空行处各填上一条指令完善该程序。
┇
MOV AX,NUMW
【9】
XOR DX,DX
DIV BX
MOV QUI,AX
【10】
参考答案
一、选择题(36分,每题2分)
1.C
2.C
3.B
4.A
5.B
6.B
7.B
8.A
9.C 10.D 11.D 12.C
13.D 14.C 15.B 16.B 17.B 18.B
二、填空题(共14分)
【1】.and ax,0ffcfh【2】.xor ax,000fh 【3】.0cdh 【4】.0abh 【5】.0f000h 【6】.0 【7】. 1 【8】.40178h 【9】.12178h 【10】.mov al,byte
ptr fld2+3 【11】.count equ
$-fld1
【12】.地址参数表法
【13】.寄存器法【14】.直接访问公共数据法三、程序分析(共30分)
【1】2(0-7位)或3(1-8位)【2】0 【3】mov ax,7fffh
Mov cl,3
Shr ax,cl
Mov cl,6
【4】12h
【5】1221h 【6】200h 【7】当al,bl异号时,
交换al,bl的值
【8】77h
【9】9ah 【10】6 【11】6 【12】5 【13】’123456789’【14】0a0h 【15】03h
四、程序填空题(共20分,每空2分)
【1】inc bx 【2】cmp [bx],’$’【3】mov al,0dh 【4】je/jz next 【5】inc si
【6】mov ah,2 【7】mov cx,8 【8】mov dl,31h 【9】mov bx,500 【10】mov
rem,dx。