计算机汇编语言试卷一

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机汇编语⾔试卷⼀
试卷⼆
⼀、选择题:(每题1分,共10分)
1、在⼀段汇编语⾔程序中多次调⽤另⼀段程序,⽤宏指令实现⽐⽤⼦程序()
A 、占⽤内存空间⼩,但速度慢
B 、占⽤内存空间⼤,但速度快
C 、占⽤内存空间相同,但速度快
D 、占⽤内存空间相同,但速度慢
2、下⾯四条指令中,源操作数不采⽤⽴即寻址的是()
A、MOV AX, DA TA
B、MOV AX, 1234H
C、MOV EAX, [EBX]
D、MOV AX, OFFSET ARY
3、下⾯四条指令中,能使AX清零,且不影响标志位的是()
A、MOV AX, 0
B、SUB AX, AX
C、XOR AX, AX
D、AND AX, 0
4、在数据段有如下定义:A_BUF DB ‘1234567’,则A-BUF字节单元的内容是()
A、31H
B、01H
C、12H
D、12
5、已知(DS)=2000H, (ES)=3000H,(CS)=4000H ,(SS)=5000H ,(BP)=2080H,COUNT=80H 则指令MOV AX, COUNT[BP]中,源操作数的物理地址为()
A、22100H
B、52100H
C、52000H
D、22000H
6、乘法指令MUL DL 执⾏后,乘积存放在()
A、AH寄存器
B、AL寄存器
C、AX寄存器
D、DL寄存器
7、指令MOV EAX, COUNT[ESI*4] 中,源操作数采⽤的寻址⽅式是()
A、基址⽐例变址寻址⽅式
B、相对基址⽐例变址寻址⽅式
C、⽐例变址寻址⽅式
D、⽐例寻址⽅式
8、下列四条指令中,正确的是()
A、MOV [BX], [2000H]
B、MOV DS, 2000H
C、MOV SS, AX
D、MOV DL , SI
9、在汇编语⾔的上机过程中,对源⽂件ABC.ASM 进⾏汇编后,不能⽣成的⽂件是()
A、ABC.OBJ
B、ABC.LST
C、ABC.CRF
D、ABC.EXE
10、下列移位指令中,格式正确的指令是()
A、SHL AX , 4
B、SHL AX , CX
C、ROL AX , CL
D、ROL AX , CH
⼆、程序分析题:(每⼩题6分,共24分)
1.设寄存器AX,BX,CX中的内容都是1234H,变量value中的内容为0F0FH,执⾏下列指令序列:OR AX,value
AND BX,value
XOR CX,value
则AX=_____,BX=_____,CX=_____
2.MOV AL,5
ADD AL,AL
MOV BL,AL
ADD AL,AL
ADD AL,BL
上述程序段执⾏后,AL=_____,BL=_____
程序段的功能⽤数学表达式表⽰_____
3.NUM DB ?
MOV AH,1
INT 21H
JBE NEXT
SUB AL,7
NEXT:SUB AL,30H
MOV NUM,AL
上述程序段运⾏后,若输⼊’F’,则(NUM)=_____(⽤⼆进制表⽰)
若’8’,则(NUM)=_____(⽤⼆进制表⽰)
该程序段的功能是_____。

4.有下列数据定义
VA DB 0FFH
VB DB 1,2
VC DW 3456H
执⾏下列指令序列:
MOV AX,WORD PTR VB+1
MOV BL,BYTE PTR VC+1
MOV CL,VB-1
则AX=_____,BL=_____,CL=_____
三、程序填空题:(每⼩题6分,共12分,每空只能填⼀条指令)
1.下⾯是⼀个⽤地址表法实现多分⽀的程序段。

根据键盘输⼊0~4的不同值,实现程序分⽀。

请将程序段填写完整。

BRANCH_TAB DW R0,R1,R2,R3,R4
MOV BX,OFFSET BRANCH_TAB
MOV AH,1
INT 21H
_____
MOV AH,0
ADD AX,AX
ADD BX,AX
_____;转到相应分⽀
2.设DX,AX中存放双字有符号数P,DX存放⾼位字。

BX,CX中存放双字有符号数Q,BX
存放⾼位字。

下列程序完成P与Q⽐较⼤⼩操作。

当P≥Q时,使AX=1
P
将程序填写完整:
JL L2
_____
CMP AX,CX
_____
L1:MOV AX,1
JMP EXIT
L2:MOV AX,2
EXIT:
四、判断题:(正确的在题后括号内划“√”,错误的划“×”。

每⼩题1分,共14分)
1. 同⼀地址即可以看作是字节单元的地址,也可以看作是字单元的地址。

()
2. ⼀个字存⼊存储器要占有相继的两个字节,低位字节存⼊低地址,⾼位字节
存⼊⾼地址。

()
3. MOV AX,1000H 指令中的⽬的操作数是⽴即寻址。

()
4. MOV AX,ES:[DI-SP]中源操作数是带段跨越前缀的基址变址寻址。

()
5. IN DX,AL指令从DX指定的端⼝地址读⼊⼀个字节到AL寄存器中。

()
6. PUSH AL将AL寄存器的内容压⼊堆栈。

()
7. ADD AX,BX与ADC AX,BX指令得到的结果总是不同的。

()
8. MOVS ES:BYTE PTR[DI],DS:[SI]完全等价于MOVSB。

()
9. ⽆符号数⽐较指令和有符号数⽐较指令的⽐较结果有可能相同。

()
10.隐含地认为变量表达式的类型属性和变量的类型属性是相同的。

()
11.DUP操作不可以嵌套。

()
12.对于MOV指令,不可以将⼀个存储单元的内容直接送⼊另外⼀个存储单元。

()
13.对于数值回送操作符TYPE、LENGTH、SIZE之间有如下关系:
(SIZE变量)=(LENGTH变量)*(TYPE变量)()
14.定义在代码段C中的类型属性为FAR的过程只能在代码段C之外调⽤。

()
五、编程题:(2⼩题,共40分)
1、编写⼀个能将键盘输⼊的⼩写字母转变成⼤写字母的⼀个汇编语⾔程序,当按回车键时退出程序,返回命令提⽰符;按⾮字母键时进⾏错误提⽰,并能重新输⼊;每次输⼊及显⽰前都能进⾏汉字提⽰;并在每次输⼊及显⽰后均能⾃动回车换⾏,并能重新输⼊,回车换⾏的功能⽤⼦程序CRLF实现。

(20分)
2、编制⼀个简单的信息检索系统,在数据区中有10个不同的信息,编号为0~9,每个信息包括25个字符;编制的程序要达到如下要求:从键盘接受0~9之间的⼀个编号,能在屏幕上显⽰对应编号的信息,并回车换⾏,且能反复输⼊;按空格键退出程序;输⼊⾮数字键提⽰错误信息,且能回车换⾏重新输⼊;显⽰某个编号信息的部分必须⽤⼦程序DISPLAY实现,回车换⾏⽤⼦程序CRLF实现。

(20分)
试卷⼆答案
⼀、选择题:(每题1分,共10分)
1、B
2、C
3、A
4、A
5、B
6、C
7、C
8、C
9、D 10、C
⼆、程序分析题:(每⼩题6分,共24分)
1、AX=1F3FH BX=0204H CX=1D3BH
2、AL=1EH BL=0AH
AL=4*AL+BL
3、00111001B 00001000B
将键盘输⼊的数字转换成对应的数字存⼊变量NUM中
4、AX=5602H BL=34H CL=0FFH
三、程序填空题:(每⼩题6分,共12分,每空只能填⼀条指令)
1、AND AL,0FH(SUB AL,30H)
JMP BX
2、JG L1(JNLE L1)JL L2(JNGE L2)
四、判断题:(正确的在题后括号内划“√”,错误的划“×”。

每⼩题1分,共14分)
1、对
2、对
3、错
4、对
5、对
6、对
7、错
8、错9、对10、对11、错12、对13、错14、错
五、编程题:(2⼩题,共40分)(由于是编程题,合理正确的答案不⽌⼀种,阅卷教师可根据实际情况决定,此答案仅供参考。


1、data segment
msg db '⼩写变⼤写,按回车退出程序,请输⼊:$'
nsg db '该⼩写字母对应的⼤写字母为:$'
qsg db '你打错了,请重新输⼊ $'
data ends (1分)、
code segment
main proc far
assume cs:code,ds:data (1分)、start:push ds
sub ax,ax
push ax (1分)、
mov ax,data
mov ds,ax (1分)、
input:mov ah,9
lea dx,msg
int 21h (1分)、
mov ah,1
int 21h (1分)、
mov bl,al
cmp al,0dh (1分)、
je exit (1分)、
CALL CRLF (1分)、
cmp bl,'a'
jl next1 (1分)、
cmp bl,'z'
jg next1 (1分)、
lea dx,nsg
mov ah,9
int 21h (1分)、
mov dl,bl
sub dl,20h
mov ah,2
int 21h (1分)、
CALL CRLF
jmp input (1分)、
next1:lea dx,qsg
mov ah,9
int 21h (1分)、
CALL CRLF
jmp input (1分)、
exit:ret
main endp (1分)、
CRLF PROC NEAR
mov dl,0dh
mov ah,2
int 21h (1分)、
mov dl,0ah
int 21h
RET (1分)、
CRLF ENDP
code ends (1分)、
end start
2、data segment
mes0 db 'I like ' mes1 db 'He lik'
mes2 db 'She li'
mes3 db 'They l'
mes4 db 'We likAAASSSDDDFFFGGHJKL Y' mes5 db 'We likAAASSSDDDFFFGGHJKL Y' mes6 db 'We likAAASSSDDDFFFGGHJKL Y'
mes7 db 'We likAAASSSDDDFFFGGHJKL Y' mes8 db 'We likAAASSSDDDFFFGGHJKL Y' mes9 db 'We likAAASSSDDDFFFGGHJKL Y' err db 'Error Error $'
data ends (2分) 、
stack segment
dw 256 dup (?)
tos label word
stack ends (1分) 、
code segment
main proc far
assume cs:code,ds:data,ss:stack (1分) 、start:mov ax,stack
mov ss,ax
lea sp,tos (1分) 、
push ds
sub ax,ax
push ax (1分) 、
mov ax,data
mov ds,ax
next0:mov ah,1
int 21h (1分) 、
cmp al,13
jz exit (1分) 、
cmp al,30h
jb error (1分) 、
cmp al,34h
ja error (1分) 、
sub al,30h (1分) 、
lea bx,mes0
mov dh,25
mul dh
add bx,ax (1分) 、
call display
jmp next0
error:lea dx, err
mov ah,9
int 21h (1分) 、
call crlf
jmp next0 (1分) 、exit: ret
main endp
display proc near
mov cx,25 (1分) 、next1:mov dl,[bx] mov ah,2
int 21h
inc bx
loop next1 (1分) 、
call crlf
ret (1分) 、display endp
crlf proc near (1分) 、mov dl,13 mov ah,2
int 21h
mov dl,10
int 21h
ret (1分) 、
crlf endp
code ends
end start (1分)。

相关文档
最新文档