《汇编语言》模拟试卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015-2016-1_14级《汇编语言》模拟试卷
一、基础知识题(每题8,共40分)
1.若DS=2030H,SS=1A00H,SP=6742H,SI=0020H, BX=0400H,内存单元DS:440H=01H,DS:441H=02H,DS:442H=04H,DS:443H=03H,寄存器AX的内容为7788H。
(1)给出DS所指数据段的起始物理地址和结束物理地址。
(2)执行指令MOV AL, [BX+SI+20]后,AX的内容是什么?访问的内存物理地址是什么?
(3)执行POP CX后,CX的内容是什么?SP的内容是什么?
2.判断下列指令是否正确,若不正确请说明原因。
(1)ADC [SI+DI],AX
(2)AND [AX],DL
(3)MOV CS,0123H
(4)PUSH 5566H
3.某程序数据段DATA如下:
DATA SEGMENT
DBUF DB ‘MOUSE_MEM!’
DBUFA DW 1020H
DB ‘TERMINER’
DB 300
DATA ENDS
试求:
(1)数据段中DBUF+12单元的存储内容。
(2)DBUFA相对于数据段地址(DS)的偏移地址。
(3)一处数据定义错误的伪指令。
4.写出能完成下列操作的指令序列。
(1)将AX的D5~D9位清零,其他位不变。
(2)将CL的D2、D4、D6位置1,其他位不变。
(3)用两种方法将AL、BL的内容互换。
(4)将DL的高4位和低4位互换。
5.写出下面每条指令执行后,ZF、PF、SF、CF、OF等标志位的值。
sub cl,cl
mov bl,10H
add bl,90H
mov bl,80H
add bl,80H
mov bl,05H
sub bl,0faH
二、程序分析题(每题8分,共24分)
1. 一内存的逻辑地址为5000H:100H,存储的内容如下:
00H,11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH
分析下列程序段执行后,寄存器(AX)= ,(BX)= ,(CX)= ,(DI)= 。
MOV AX,5000H
MOV DS,AX
MOV BX,100H
MOV SI,2
MOV AX,[BX+SI]
INC SI
MOV CX,[BX+SI]
INC SI
MOV DI,SI
ADD CX,[BX+DI]
2.分析下列程序段,回答问题。
ASSUME CS:CODE,DS,DATA
DATA SEGMENT
DB 1,3,5,‘B’,‘H’,‘W’,‘A’,‘T’,7,‘*’,0,‘#’,‘$’,‘-’DATA ENDS
CODE SEGMENT
START: MOV AX,DATA
MOV DS,AX
MOV BX,0
MOV CX,14
MOV AL,‘W’
S0: CMP AL, [BX]
JZ S1
INC BX
LOOP S0
S1: MOV DI,BX
MOV AX,4C00H
INT 21H
CODE ENDS
END START
(1)程序完成何功能?
(2)程序运行后,(CX)=,(DI)=。
3.下列程序段执行后,寄存器(AX)=,(SP)= ,(DX)=,(CX)= 。
代码段逻辑地址存储的指令
6010H:3000H MOV AL,0
3002H MOV AX,CS
3004H MOV SS,AX
3006H MOV SP,30H
3009H MOV DX,5050H
300CH PUSH DX
300DH CALL,3700H
3010H ADD CX,DX
3012H HLT
6010H:3700H POP CX
RET
三、完善、改错程序题(每题10分,共20分。一个空只能填一条指令)
1.下面的程序实现将CODE段中MEMA处的10个数据累加,结果存储到RESUB处的双字中。完善程序。
ASSUME CS:CODE
CODE SEGMENT
AA DW 00H,11H,22H,33H,44H,55H,66H,77H,88H,99H
BB DD 00H
START: MOV SI,0
MOV CX,10
SS: MOV AX,
ADD ,AX
ADC ,0
ADD SI,
LOOP SS
MOV AX,4C00H
INT 21H
CODE ENDS
END START
2.下列程序将DATASEG段中每个单词改为小写字母。找出程序中的错误,改正实现程序功能。
ASSUME CS:CODESEG,DS:DATASEG
DATASEG SEGMENT
DB 'FOX'
DB 'PRO'
DB 'VAX'
DB 'SET'
DATASEG ENDS
CODESEG SEGMENT
START: MOV AX, DATASEG
MOV DS, AX
MOV BX,0
MOV CX,4
S0: MOV SI,0
MOV CX,3
S1: MOV AL,[BX+SI]
AND AL,11011111b
MOV [BX+SI],AL
INC SI
LOOP S1
INC BX
LOOP S0
MOV AX,4C00H
INT 21H
CODESEG ENDS