试卷一
一、单项选择题(本大题共15小题,每小题2分,共30分)
1.与MOV BX, OFFSET VAR指令完全等效的指令是( )。
(A)M(B)LDS BX, VAR
(C)LES BX, VAR (D)LEA BX, VAR
2. DEBUG中的执行一段子程序的命令是( )。
(A)D (B)T (C)P (D)U
3.不能作为地址指针的寄存器是( )。
(A)CX (B) BX (C)DI (D)SI
4.已知, (AX)=0F234H,执行OR AX, 963FH后,则SF,CF的值为( )。
(A)SF=1,CF=1 (B)SF=1,CF=0
(C)SF=0,CF=1 (D)SF=0,CF=0
5.AL=11011011B ,CL=2,执行SAR AL, CL后,AL寄存器的内容是( )。
(A)0 (B)01101100
(C)0 (D)11110110
6.下面两个传送指令语句中源操作数寻址方式是( )。
MOV AX, VAR1
MOV BX, VAR2
(A)都是立即数寻址 (B)立即数寻址,直接寻址
(C)直接寻址,立即数寻址 (D)都是直接寻址
7.变量具有( )。
(A)偏移属性 (B) 符号属性
(C)段属性 (D)段属性和偏移属性
8.寄存器间接寻址方式中,操作数在( )中。
(A)通用寄存器 (B)堆栈
(C) 内存单元 (D)段寄存器
9.下列对END语句的叙述正确的是( )。
(A)END是一可执行语句
(B)END表示程序执行到此结束
(C)END表示源程序到此结束
(D)END在汇编后产生机器码
10.下列叙述不正确的是( )。
(A)存储单元与逻辑地址之间的关系是一一对应的
(B)存储单元与物理地址之间是一一对应的
(C)一个逻辑地址对应一个存储单元
(D)一个存储单元可以用不同的段地址和偏移地址表示
11.下列指令合法的是( )。
(A)O (B)OUT DX, AL
(C)O (D)OUT 30H, AH
12.当一个带符号数大于0FBH时程序转移,选择的条件转移指令是( )。
(A)J (B)JLE
(C)JNL (D)JA
13.用于显示单个字符的DOS系统功能调用,应设置AH寄存器的内容为( )。
(A)1 (B)2H
(C)9 H (D)0AH
14. 完成与指令XCHG AX, BX 相同功能的指令或指令序列是( )。
(A)M (B)MOV BX, AX
(C)P (D)MOV CX, AX
POP BX MOV AX, BX
MOV BX, CX
15.下面的CMP指令中,语法正确的指令是( ).
(A)CMP BUF1, BUF2 (B)CMP AL, 0FH
(C)CMP BUF1, 0FH (D)CMP AL, BX
二、阅读程序题(本大题共3小题,每小题6分,共18分)
1.阅读程序
(1)写出程序的功能;(2)程序执行后 DAT和DAT+1单元的内容是什么?
DATA SEGMENT
DAT DB 98H, 27H
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV AL, DAT
CMP AL, DAT+1
JNG DONE
XCHG AL, DAT+1
MOV DAT, AL
DONE: MOV AH, 4CH
INT 21H
CODE ENDS
END START
2. 对于下面的数据定义,各条MOV指令单独执行后,请填写有关寄存器的内容。
DATA SEGMENT
TABLE1 DW 30H
TABLE2 DW 20 DUP (?)
TABLE3 DB ‘ABCD’
DATA ENDS
. MOV BX, TYPE T (BX=_______ )
M (CX=_______ )
MOV DX, OFFSET T (DX=_______ )
3.阅读下列程序,写出指令段实现的功能。
MOV AL, X
ADD AL, Y
MOV CL, 3
SAL AL, CL
MOV BL, X
SUB BL, Y
SAL BL, 1
SUB AL, BL
MOV CL, 4
SAR AL, CL
MOV Z, AL
三、阅读填空题(本大题共2小题,共有6个空,每个空格2分,共12分)
1.从DAT开始的单元中存放着多个有符号的字节数。下面程序实现对其处理。如果数据大于等于0,则屏蔽高4位;如果小于0则将其求补,处理后的数据仍保留在原单元中。在下面每一空白处填上一条适当的指令。
DATAS SEGMENT
DAT DB 77H, 88H, 0AAH, 0BBH, 13H
COUNT EQU $-DAT
DATAS ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATAS
START: MOV AX, DATAS
MOV DS, AX
LEA SI, DAT
MOV CX, COUNT
LL1: MOV AL, [SI]
CMP AL, 0
JGE LL2
JMP PP
LL2:
PP: INC SI
LOOP LL1
MOV AH,4CH
INT 21H
SUB1 PROC
AL
[SI], AL
RET
ENDP
PROC
RET
ENDP
ENDS
START
2.下面程序段是完成用单个字符输入的1号功能调用,从键盘输入10个字符。然后再用单个字符显示输出的2号功能调用,并以相反顺序显示输出这10个字符。试在空白处填上适当的指令(每个空白处只能填一条指令)。
MOV CX, 10
AH, 01H
INT 21H
LOP1
CX, 10
LOP2:
AH, 02H
21H
LOOP LOP2
四、程序设计题(本大题共3小题,其中第1小题12分,第2小题13分,第3小题15分,共40分)
1.X,Y, W为字节类型的数,求Z=((W-X)*10+5)/(X+Y)),其中X,Y,W为字节类型的数,数值分别为:38H,28H,48H 。
2.利用主程序调用子程序,比较BUF1和BUF2缓冲区中不相等的字符,并将不相等的字符显示出来。
3.在首地址为TAB的数组中按递增次序存放着100个数,试编程将出现次数最多的数以及出现的次数分别存放于变量NUM和COUNT中,并以:COUNT=? 的形式输出COUNT的值(设最多重复次数<10) 。
试卷二
一、单项选择题(本大题共20小题,每小题2分,共40分)
1.下列四个寄存器中,可作为16位寄存器的是( )。
(A)AL (B)BL (C)BP (D)BH
2.逻辑移位指令SHL,用于( )。
(A)带符号数倍增 (B)带符号数倍减
(C)无符号数倍增 (D)无符号数倍减
3.在程序的运行过程中,确定下一条指令的物理地址的计算表达式是( )。
(A)C (B) DX*16+DI
(C)SS*16+SP (D)ES*16+SI
4.下面表示宏定义结束的命令是( )。
(A)ENDP (B)ENDS (C)ENDM (D)END
5.用于输入单个字符的DOS系统功能调用,应设置AH寄存器的值为( )。
(A)1H (B)2H (C)9 H (D)0AH
6.下列指令中有语法错误的是( )。
(A)MOV 100H,B (B)MOV [100H], 25
(C)MOV [100H], BX (D)MOV [BX], 100H
7.两个无符号数比较,如表示大于时转到NEXT处,应选用的指令是( )。
(A)JNBE NEXT (B)JNLE NEXT
(C)JBE NEXT (D)JLE NEXT
8.寄存器直接寻址方式中,操作数在( )中。
(A)通用寄存器 (B)堆栈
(C)内存单元 (D)段寄存器
9.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( )。
(A)A (B)BX, BP, SI, DI
(C)S(D)CS, DS, ES, SS
10.下面指令序列执行后完成的运算,正确的算术表达式是( )。
MOV DL, X
SAR DL, 1
MOV Y, DL
(A)Y=X*2 (B)X=Y*2 (C)Y=X/2 (D)X=Y/2
11.在标志寄存器中,用以记录当前运算结果是否为0的标志位是( )。
(A)CF (B)ZF (C) OF (D)SF
12.当前指令的地址存放在( )中
(A)DS: BP (B)SS: SP (C)CS: PC (D)CS: IP
13.下列指令执行后,可能改变BL寄存器内容的指令是( )。
(A)TEST BL, 0FFH (B)OR BL, 00H
(C)CMP BL (D)XOR BL, BL
14.与MOV BX, OFFSET VAR指令完全等效的指令是( )。
(A)MOV B(B)LDS BX, VAR
(C)LES B(D)LEA BX, VAR
15.汇编语言源程序中,每个语句由四项组成,如语句要完成一定的功能,不可省略的项是( )。
(A)名字项 (B)操作项
(C)操作数项 (D)注释项
16.汇编语言源程序的扩展名是( )。
(A).ASM (B).OBJ (C).EXE (D).COM
17.能够将BL的低4位清0的指令是( )。
(A)AND BL , 0F0H (B)AND BL , 00H
(C)OR BL , 0F0H (D)OR BL , 00H
18.已知,(AX)=9023H,执行OR AX, 001BH后,则SF,CF的值为( )。
(A)SF=1,CF=1 (B)SF=1,CF=0
(C)SF=0,CF=1 (D)SF=0,CF=0
19.设OP1、OP2是变量,下面哪条指令是正确的( )。
(A)CMP BX, OP2 (B)CMP [AX], OP2
(C)CMP OP1, OP2 (D)CMP OP2, 0FFH
20.用DEBUG调试程序时,单步执行命令是( )。
(A)G (B)U (C)D (D) T
二、阅读程序题(本大题共3小题,其第1、2小题均为6分,第3小题为6分,共20分)
1.执行下面程序段后,AX、CX的值为多少?
CODE SEGMENT
ASSUME CS: CODE
START: MOV CH, 0
MOV CL, 1
MOV BL, 2
MOV AH, 0
AGAIN: MOV AL, BL
INC BL
MUL BL
ADD CX, AX
CMP AX, 0015H
JB AGAIN
MOV AH, 4CH
INT 21H
CODE ENDS
END START
2.阅读程序,写出指令段实现的数学公式。
BL, X
BL, Y
AL, W
AL, X
TEN
AX, 5
BL
Z, AX
AL, 0
3.写出程序的功能和结果。
SEGMENT
1, 2, 3 ,4, 5, 6, 7, 8
1, 2, 3, 4, 5, 6, 7, 8
?
G ENDS
G SEGMENT
G, DS: DSEG
G
DS, AX
CX, 8
BX, 0
SI, OFFSET NUM1
DI, OFFSET NUM2
AL, [SI]
BYTE PTR[DI]
BX, AX
DI
SI
AGAIN
MOV RESULT, BX
AL, 0
MOV AH, 4CH
21H
G ENDS
START
三、程序设计题(本大题共3小题,其中第1小题12分,第2小题13分,第3小题15分,共40分)
1.编程显示以下图案。
2.首地址为BUF 的内存单元中存有10个字节数,统计其中单元内容为0的单元个数,并将统计的结果显示出来。
3.编写子程序搜索指定字符缓冲区中是否有小写字母N,如果有则用Y替代。江调用子程序将BUF1,BUF2中的N全部用Y替代。
试卷三
一、单项选择题(本大题共20小题,每小题1分,共20分)
1.下面四个寄存器中,不能作为间接寻址的寄存器是( )。
(A)BX (B)DX (C)BP (D)DI
2.用来表示堆栈指针的寄存器是( )。
(A)IP (B)BP (C)SP (D)SS
3.完成BX清零,并使标志位CF清零,下面错误的指令是( )。
(A)SUB BX, BX (B)XOR BX, BX
(C)MOV BX, 00H (D)AMD BX, 00H
4.下面数据传送指令中,正确的指令是( )。
(A)MOV BUF1, BUF2 (B)MOV CS, AX
(C)MOV CL, 1000H (D)MOV DX, WORD PTR [BX+DI]
5.下面指令中,源操作数的寻址方式为直接寻址的指令是( )。
(A)ADD AX, WORD PTR [BX+SI] (B)ADD AX, B
(C)INC CX, 1000H (D)MOV BX, 7FFFH
6.下面表示段定义结束的命令是( )。
(A)ENDP (B)ENDS (C)ENDM (D)END
7.设AL,BL中都是有符号数,当AL≤BL时转至NEXT处,在CMP AL, BL指令后应选用正确的条件转移指令是( )。
(A)JBE (B)J (C)J (D)JNLE
8.指令LOOPZ的循环执行条件是( )。
(A)CX≠0并且ZH=0 (B)CX≠0或ZH=0
(C)CX≠0并且ZH=1 (D)CX≠0或ZH=1
9.执行下列指令后,SP寄存器的值是( )。
MOV SP, 1000H
PUSH AX
(A)0FFEH (B)0FFFH (C)1001H (D)1002H
10.完成有符号数BX的内容除以2的正确指令是( )。
(A)SHR BX, 1 (B)SAR BX, 1
(C)ROR BX, 1 (D)RCR BX, 1
11.下面指令中影响状态标志位CF的指令是( )。
(A)INC AX (B)DEC AX
(C)NOT AX (D)DEC AX
12.判断当CX=0时,转ZERO执行的错误指令是( )。
(A)C (B)MOV AX, CX
JZ ZERO JZ ZERO
(C)O (D)JCXZ ZERO
JZ ZERO
13.执行1号DOS系统功能调用后,从键盘输入的字符应存放在( )。
(A)AL中 (B)BL中 (C)CL中 (D)DL中
14.设数据定义如下:
执行指令ADD SI, TYPE ARRAY相当于完成下面同等功能的指令是( )。
(A)ADD SI, 1 (B)ADD SI, 2
(C)ADD SI, 3 (D)ADD SI, 0
15.设数据定义如下:
执行指令MOV CX, LENGTH BUF相当于完成下面同等功能的指令是( )。
(A)MOV CX, 00C8H (B)MOV CX, 0200H
(C)M(D)MOV CX, 0100H
16.完成对字单元BUF的内容加1运算,下面错误的指令是( )。
(A)MOV CX, BUF (B)MOV BX, OFFSET BUF
INC BX INC WORD PTR [BX]
(C)MOV BX, BUF (D)MOV BX, 0
INC WORD PTR [BX] INC WORD PTR BUF [BX]
17.完成对寄存器BX内容的求补运算,下面错误的指令是( )。
(A)N(B)NOT BX
INC BX
(C)X(D)MOV AX, 0
18.判断当AX的内容为负数时,转MINUS执行,下面错误的指令是( )。
(A)N(B)TEST AX, 8000H
JNS MINUS JNS MINUS
(C)S(D)OR AX, AX
JC MINUS JNS MINUS
19.下面指令执行后,正确的结果是( )。
MOV AL, 0FEH
ADD AL, AL
ADC AL, AL
(A)AL=0F8H (B)AL=0F8H CF=0
(C)AL=0F9H (D)AL=0F9H CF=1
20.现有数据存储如下图所示:设AL=01H,BX=0100H,DX=3000H,执行换码指令XLAT后正确的结果是( )。
| 30100H | 40H |
| 30101H | 79H |
| 30102H | 24H |
| 30103H | 30H |
二、填空题(本大题共6小题,每空1分,共14分)
1.8086CPU允许的最大存储空间为 ,其地址编号从 到
H。
2.汇编语言是一种面向 的语言。完成将汇编语言源程序翻译成机器语言目的程序的翻译程序称 。
3.8086的存储器是分段的,因此存储单元的物理地址是由 和组合
而成的。
4.标号和变量(名字)均有三种属性,它们是 、 和
属性
5.判断无符号运算是否溢出,应根据 标志位;而判断有符号数运算是否溢出,应根据 标志位。
6.在16位存储单元中能存储的最大无符号数为65535,能表示的有符号数的范围是
H到 H。
三、简答题(本大题共3小题,每小题3分,共9分)
1.数据存储示意如下图所示,请用DUP语句写出合适的数据定义伪指令:
BUFFER
| 1 |
| 2 |
| 3 |
| 2 |
| 3 |
| 4 |
| 1 |
| 2 |
| 3 |
| 2 |
| 3 |
| 4 |
A)将字变量VARW的偏移地址送BX寄存器;
B)将字变量VARW的内容送CX寄存器;
C)将字变量VARW的类型值送DX寄存器。
3.设有数据定义伪指令如下:
2000H
0100H, 0200H, $+2, 0300H, $+2
请画出存储单元数据的存储形式。
四、程序分析题(本大题共5小题,每小题6分,共30分)
1. AX, 00FFH
MOV BX, 0FFFFH
AX, BX
AX
问:该程序段执行后AX= ,CF= 。
2. MOV AX, BX
AX
AX, BX
问:该程序执行后AX= ,CF= 。
3. BUF 0000H
…
BX, BUF
STC
[BX], 1
CL, 3
[BX], CL
问:该程序执行后,存储单元BUF的内容为 。
4. …
RESULT DB ?
…
START: LEA SI, BLOCK
MOV CX, [SI]
INC SI
MOV AL, [SI]
LOP1: CMP AL, [SI+1]
JNG NEXT
MOV AL, [SI+1]
NEXT: INC SI
LOOP LOP1
MOV RESULT, AL
HLT
问:(1)该程序所完成的功能是 ;
(2)该程序循环次数是: 。
5. CODE SEGMENT
CS: CODE
CX, 1
BL, 2
AL, BL
BL
BL
CX, AX
AX, 002AH
AGAIN
AH, 4CH
21H
ENDS
START
问:(1)该程序所完成的功能可用算术表达式表示为 ;
(2)该程序完成后CX= 。
五、程序填空题(本大题共2小题,每小题6分,共12分)
(下列各小题中,每空只能填一条指令)
1.下面程序完成十进制数3298+4651的运算,并将结果存入SUM单元开始的2个字节单元中,请将程序补充完整。
DA1 DB 98H, 32H
DA2 DB 51H, 46H
SUM DB 2 DUP (?)
…
MOV SI, OFFSET DAT
LEA DI, DAT
ADD AL, [DI]
MOV SUM, AL
MOV AL, [SI+1]
DAA
MOV SUM+1, AL
HLT
2.下面程序利用DOS系统功能调用,完成将键盘输入的小写字母转换成大写字母后输出显示,直到输入’$’字符结束。请将程序补充完整。
SEGMENT
ASSUME CS: CODE
NEAR
AH, 01H
21H
STOP
CMP ‘a’
STOP
‘z’
JA STOP
MOV AH, 02H
INT 21H
JMP BEGIN
STOP: RET
DISPLAY ENDP
CODE ENDS
六、程序设计题(本大题共2小题,其中第1小题5分,第人小题10分,共15分)
1.设在DAT1,DAT2字单元中存放一双字长有符号数,编一程序段,完成求出该双字长数的绝对值后送ABS1和ABS2字存储单元。(本小题5分)
2.在附加数据段中有一首址为ADDR的没有排序的字数组,数据的第一个字为数组长度,第二个字开始存放数组各元素。在KEY单元存放一要删除的字数据。要求编一完整程序,在数组中查找该数,如果找到该数,将其从数组中删除,并修改数组长度。(本小题10分)
试卷一参
一、填空题
1 D 2 C 3 A 4 B 5 D 6 C 7 D 8 C 9C 10 A 11 B 12 A 13 B 14 B 15 B
二、阅读题
1.(1)比较DAT与DAT+1单元的内容,小的数放在DAT单元
(2)27H,98H
2.BX=2 CX=20 DX=42
3.Z=((X+Y)*8-(X-Y)*2)/16
三、程序填空题
1. CALL SUB2 CALL SUB1 AND AL, 0FH MOV [SI] , AL
2. PUSH AX POP DX
四、程序设计题(参,也可以用其它方法)
1. DSEG SEGMENT
DB 38H
DB 20H
DB 30H
DW ?
10
ENDS
PUBLIC 'CODE'
SEG, DS: DSEG
AX, DSEG
MOV DS, AX
MOV BL, X
;先求分母,存于BL
AL, W
AL, X
TEN
AX, 5
BL
Z, AX
AL, 0
AH, 4CH
21H
ENDS
START
2. SEGMENT
BUF DB LEN1 DUP (?) ;不相同的字符存在BUF开始的缓冲区
ENDS
CODE SEGMENT
CS: CODE, DS: DATA
AX, DATA
DS, AX
DI, BUF1
SI, BUF2
CX, LEN1
BX, BUF
KLL
BYTE PTR[BX], '$' ;在要显示的字符串末尾加'$'
:显示字符串BUF
DX, BUF
CALL PRINT
AH, 4CH
INT 21H
;比较2个字符串,将不相同的字符送到BX开始的存储空间,入口参数为2个字符串的偏移地址SI,DI,以及字符串的长度CX
KLL PROC
AL1: AL, [SI]
[DI], AL
J 2
[BX], AL
BX
SI
DI
AL1
RET
ENDP
;显示字符串子程序
AH, 9
21H
RET
ENDP
ENDS
START
3.在首地址为TAB的数组中按递增次序存放着100个数,试编程将出现次数最多的数以及出现的次数分别存放于变量NUM和COUNT中,并以:COUNT=? 的形式输出COUNT的值(设最多重复次数<10)。
DATA SEGMENT
BUF DB 1, 2, 14H, 14H, 14H, 14H, 14H, 15H, 15H, 15H, 17H, 17H, 59H, ...
LEN = $-BUF
NUM DB ?
COUNT DB 0
MM DB 'COUNT=', '$'
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV SI, 0
MOV CL, LEN
MOV BL, 0
AGAIN: MOV AL, BUF[SI]
CMP AL, BUF[SI+1]
JNE L1
INC B ;BL中存放的是当前重复数的个数
MOV BH, A ;BH中存放的是当前重复的那个数
JMP L2
L1: CMP COUNT, BL ;重复次数最多的放在COUNT中
JAE L2
MOV COUNT, BL
MOV NUM, B ;保留重复次数最多的那个数
MOV BL, 0 ;要将BL置0, 用于存放下一个重复数
;的个数
L2: INC SI
LOOP AGAIN
INC C ;COUNT中是重复的次数,出现次数
;应该是重复次数加1
LEA DX, MM
MOV AH, 9
INT 21H
MOV DL, COUNT
ADD DL, 30H
MOV AH, 2
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
START
试卷二参
一、选择题
1 C 2 C 3 A 4 C 5 A 6 A 7 A 8 C 9 B 10 C 11 B 12 D 13 D 14 D 15 B 16A 17 A 18 B 19 A 20 D
二、阅读题
1. AX CX (也可以用十进制数表示)
6 7
C 13H
14H 27H
1EH 45H
2. ((X+Y)*8-(X-Y)*2)/16
3. Y=∑AI*BI,I=1—8(用中文表示也可以)
Y=204
三、编程题
1.
CSEG SEGMENT
ASSUME CS: CSEG
START: MOV AX, DSEG
MOV DS, AX
MOV BX, 9
LP: MOV CX, BX
LOP: MOV DL, '*'
MOV AH, 2
INT 21H
LOOP LOP
MOV AH, 02H
MOV DL, 0AH
INT 21H
MOV DL, 0DH
INT 21H
DEC BX
DEC BX
CMP BX, 1
JGE LP
MOV AL, 0
MOV AH, 4CH
INT 21H
CSEG ENDS
END START
2. SEGMENT
DB 0, -1, 2, 4, 3, -4, 5, 6, -7, 0
;存放0的个数
ENDS
SEGMENT
CS: CODE, DS: DATA
AX, DATA
DS, AX
MOV AL, 0 ;计数0的个数
SI, BUF
CX, 10
BYTE PTR[SI], 0
AL3
;0的个数
SI
LOP
DL, AL
DL, 30H
AH, 02H
21H
RESULT, AL
AH, 4CH
21H
ENDS
START
3. DATA SEGMENT
DB 'I AM A STUDENT!', '$'
=$-BUF1
DB 'EWFHEFNFN', '$'
=$-BUF2
M
ENDS
SEGMENT
CS: CODE, DS: DATA
AX, DATA
DS, AX
SI, BUF1
CX, LEN1
CMMP
SI, BUF2
CX, LEN2
CMMP
AH, 4CH
21H
;子程序的功能:搜索字符串中是否有N字符,如果有用Y替代,并显示字符串
;入口参数为字符串偏移地址SI,字符串长度CX
PROC
MOV DX, SI
;将要显示的字符串的偏移地址送DX,用于显示字符串。这句应在子程序的开始,因为下面语句会改变SI的值
BL1: CMP BYTE PTR[SI], 'N'
JNZ BL2
AL, 'Y'
[SI], AL
SI
B11
;显示字符串
21H
DX, M
21H
RET
ENDP
CODE ENDS
START
试卷三参
一、单项选择题
1.B 2.C 3.C 4.D 5.B 6.B 7.B 8.C 9.A 10.B 11.D 12.B 13.A 14.B 15.C 16.C 17.D 18.A 19.D 20.D
二、填空题
1.1 .机器 汇编语言 3.段地址 偏移地址
4.段属性S偏移地址属性OFFSET 类型属性TYPE
5.CF OF 6.8000H 7FFFH
三、简答题
1. BUFFER (1, 2DUP(2, 3), 4)
2. A)MOV BX, OFFSET VARW
B)MOV CX, VARW
C)MOV BX, TYPE VARW
3.
| 2000H | 00H |
| 2001H | 01H |
| 2002H | 00H |
| 2003H | 02H |
| 2004H | 04H |
| 2005H | 20H |
| 2006H | 00H |
| 2007H | 03H |
| 2008H | 08H |
| 2009H | 20H |
1.AX=0100H, CF=1
2.AX=0000H CF=0(当BX=0时), CF=1(当BX不等于0时)
3.该程序执行后,存储单元BUF的内容为0F000H,即该程序段完成:-32768/8=-4096
4.(1)该程序完成的功能是从32个有符号数中找出最小数→RESULT单元;
(2)该程序的循环次数是1FH(或31)
5.(1)该程序所完成的功能可用算术表达式表示为:
CX←1+2ⅹ3+3ⅹ4+4ⅹ5+5ⅹ6+6ⅹ7;
(2)程序运行后CX=6FH(或111)
五、程序填空题
1.对该程序所要求补充的指令分别是:MOV AL, [SI]
DAA
ADC AL, [DI+1]
2. CMP AL, ‘$’
SUB AL, 20H
MOV DL, AL
六、程序设计题
1. START: MOV AX, DAT1
MOV DX, DAT2
OR DX, DX
JNS NEXT
NOT AX
NOT DX
ADD AX, 1
ADC DX, 0
NEXT: MOV ABS1, AX
MOV ABS1, DX
HLT
2. DATA SEGMENT
ADDR DW 1275H, 4652H, 0034H, 4CBAH, 1FF0H, …
KEY DW 0034H
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS:DTAT, ES:DATA
DELUL PROC FAR
PUSH DS
XOR AX, AX
PUSH AX
MOV AX, DATA
MOV DS, AX
MOV ES, AX
LEA DI, ADDR
PUSH DI
MOV AX, KEY
MOV CX, ES: [DI]
ADD DI, 2
CLD
REPNZ SCASW
JZ DELET
POP DI
JMP EXIT
DELET: JCXZ NEXT
DEL: MOV BX, ES: [DI]
MOV ES:[DI-2], BX
ADD DI, 2
LOOP DEL
NEXT: POP DI
DEC WORD PTR ES:[DI]
EXIT: RET
DELUL ENDP
CODE ENDS
END
参考文献
[1] 曹加恒等. 新一代汇编语言课程设计. 北京:高等教育出版社,2003
[2] 龚尚福等. 微型计算机汇编语言课程设计. 西安:西安电子科技大学出版社,2003
[3] 李珍香等. 汇编语言课程设计案例精编. 北京:中国水利水电出版社,2004
[4] 王爽. 汇编语言. 北京:清华大学出版社,2003
[5] 张维勇. 汇编语言程序设计自考应试指导. 南京:南京大学出版社,2000
[6] 罗万钧. 汇编语言程序设计教学辅导与上机实验指导. 西安:西安电子科技大学出版社,1998
[7] 李兆凤. 8088/8086汇编语言程序设计. 北京:广播大学出版社,1993
[8] 杨路明. 汇编语言程序设计. 长沙:中南大学出版社,2005下载本文