汇编语言练习题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
INT 21H
JE EXIT
CMP AL, ‘a’
JB ERR
CMP AL,‘z’
JA ERR
MOV DL, AL
MOV AH, 2
INT 21H
JMP NEXT
ERR: LES DX, ERROR
MOV AH, 9
INT 21H
JMP NEXT
EXIT: MOV AH, 4CH
INT 21H
CODE ENDS
C.影响SF符号标志 D.影响CF进位标志
11.执行下列程序后,(AL)=( )H。
DATA SEGMENT
TAB DB‘0123456789’
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX, DATA
MOV DS, AX
MOV BX, OFFSET TAB
ERROR DB “INPUT EXCEEDS‘a’~‘z’,PLEASE INPUT AGAIN!”,0DH,0AH,‘$’
DATA ENDS
CODESEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
NEXT: MOV AH, 1
2.8086/8088系统中,I/O端口地址范围是。
3.8086/8088系统中,段内一个单元相对段的起始地址的距离称为, 它小于。
4.8086/8088CPU内部用来存放段地址的寄存器有。
5.在PC机中,使用、合成20位的物理地址,用以指向当前堆栈桟顶的位置。
6.一个字单元由二个连续的单元组成,其中数据的低8位存放在单元、高8位存放在单元。
MOV AL, 04
XLAT TAB
A.04B.0400
C.33D.34
12.下列指令中操作数在代码段中的是( )。
A.MOV AL, 25HB.ADD AH, BL
C.INC BYTE PTR [25H]D.CMP BL, AL
13.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用()
MOV BX,OFFSET BUF
MOV CX,COUNT
LOP1:ADD AX, [BX]
LOOP LOP1
MOV SUM,AX
MOV AH, 4CH
INT 21H
CODE ENDS
END START
25.以下程序完成将键盘输入的小写字母转换成大写字母并输出显示,直到输入字符“$”结束。
DATA SEGMENT
PRINTIT: MOV DL, AL
MOV AH, 2
INT 21H
JNZ ROTATE
POP DX
POP AX
POP CX
RET
BINTOHEX ENDP
备选答案:
① JL PRINTIT
② AND AL, OFH
③ DEC CH
27.下面程序段是判断寄存器BL中第3位、第5位是否同时为1,如同时为1,则AH置0,否则AH置全l。
( ) 12. SUB EAX, [ECX*10+100]
( ) 13. MOV DS, 1200H
( ) 14. XCHG 256, [100H]
( ) 15. OUT DX, AX
( ) 16. LEA VAR, [BP+SI]
( ) 17. NEG 88
( ) 18. INC WORD PTR [100H]
26.下面子程序完成把BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来。
BINTOHEX PROC NEAR
PUSH CX
PUSH AX
PUSH DX
MOV CH, 4
ROTATE: MOV CL, 4
ROL BX, CL
MOV AL, BL
ADD AL, 30H
CMPAL, 3AH
ADD AL, 7H
MOV AX,0632H
MOV BX,0C202H
SUB AX,BX
INC AX
执行上述程序片段后,(AX)=,(CF)=,OF=,PF=
5.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28H
MOV BX,0024H
LEA BX,[BX]
OR BX,0
A:NOTB:ORC:ANDD:XOR
14.下列指令中段默认为堆栈段的是( )
A.MOV AX,[BX+SI+10]B.ADD AX,ES:[SI]
C.SUB [BX],[BP][DI]D. MOV DX,[1000H]
15.设BL=05H,要使结果BL=0AH,应执行的指令是( )。
A.NOT BLB.AND BL
C:在内存空间中,可以无限分配段,且段的大小不受限制。
D:段与段之间可以邻接,也可以重叠。
18.下列关于堆栈的说法,错误的是()
A:以“先入后出”为原则。
B:栈区最高地址单元的前一个单元为栈底。
C:运行中SP寄存器动态跟踪栈顶位置。
D:压栈和弹出都是以字节为单位。
19.分配给INT 12H在中断向量表中的物理地址是 ( )。
7. 在指令中直接给出操作数的寻址方式称为。
8.设MASK为一个变量,在“MOV AX, MASK[SI+BX]”指令中,源操作数的寻址方式是,其物理地址是,目的操作数的寻址方式是
。
9.若(SS)=1100H,(SP)=0150H,那么执行PUSH EAX指令后SP的内容是,再执行POP CX指令后桟顶的物理地址是。
A.12HB.24H
C.36HD.48H
20.DOS调用INT 21H的键盘输入功能1和功能8的区别是( )。
A.功能1不回显而功能8回显B.功能1回显而功能8不回显
C.功能1和功能8都不回显D.功能1和功能8都回显
二、填空题(共27题)。(最后二题有备选答案)
1.设一存储单元中的二进制代码是83H,其对应的一个无符号数是,一个带符号数是。
17. 每种类型的中断都由相应的来处理。
18.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出)
FLD DW 10, -20, 30, -60, -71, 80, 79, 56
LEA SI,______
MOV CX, 8
XOR AX, AX
R1:ADD AX ,_____
ADD SI, 2
( ) 3. ADD AX, CL
( ) 4. AND AX,[DX]
( ) 5. MOV CS, 0600H
( ) 6. PUSH 074CH
( ) 7. ADD AX, CL
( ) 8. OR BX,[CX]
( ) 9 IMUL DX
( ) 10. XOR AL, BX
( ) 11. MOV [DX], BX
CSTRING DB‘PERSONAL COMPUTER’
请编写指令将字符串中的第1个和第7个字符传给DX寄存器。
五、程序分析题(分析程序段总的功能或回答相关问题或运行结果)(共14题)。
1.阅读如下程序片段
MOV AL,4CH
MOV BL,0B5H
ADD AL,BL
执行上述程序片段后,(AL)=,(BL)=,CF=,OF=
10. CPU执行“JMP BX”指令只改变,而不改变内容。
11.执行CALL NEAR PTR SUBROUT时,在修改IP/EIP内容之前应该。
12. STRING DB‘ABCDEFG’
COUNT EQU $-STRING
COUNT的值是,表示的意义是。
13. 数据定义语句:TAB DW 100 DUP(?)
一、单项选择题 (共20题)
1.对于有符号的数来说,下列哪个值最大( )
A:0F8HB:11010011B C:82D:123Q
2.下列有关汇编语言中标号的命名规则中,错误的是( )
A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符
C:?和$不能单独作为标号 D: .号不可位于标号首
MOV CX,WORD PTR [DA1]
AND CX,0FH
MOV AL,[DA1+3]
SHL AL,CL
上述指令序列执行后,AL=_______,CL=_______。
23.阅读如下程序片段
MOV AL,4CH
MOV BLຫໍສະໝຸດ Baidu86H
ADD AL,BL
执行上述程序片段后,(AL)=,(BL)=,
CF=,OF=
C.XOR BL, 0FHD.OR BL, 0FH
16.表示一条指令的存储单元的符号地址称( )。
A.标号B.变量
C.偏移量D.类型
17.关于8086/8088微机系列,下列说法哪个是正确的()
A:一个存储单元由16个二进制位组成,简称字。
B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。
6.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式()
A:寄存器寻址B:相对基址变址寻址
C:变址寻址D:基址变址寻址
7.连接程序把汇编语言源程序生成的目标文件(.OBJ文件)转换成( )。
A..OBJ文件B..EXE文件
C..LST文件D..CRF文件
8.在程序运行过程中,确定下一条指令的物理地址的计算表达式是( )。
A.(CS)×16+(IP)B.(DS)×16+(DI)
C.(SS)×16+(SP)D.(ES)×16+(SI)
9.若AX= - 15要得到AX=15应执行的指令是(A )
A.NEG AX B.NOT AX
C.INC AX D.DEC AX
10.8086/8088系统执行传送指令MOV时( )
A.不影响标志位B.影响DF方向标志
( ) 19 IMUL DX
( ) 20. XOR AL, BX
四、简答题(共4题)
1.标志寄存器:
2.逻辑地址:
3. 下列程序段执行完后,SF、ZF、CF、OF的内容是什么?
MOV BX, 4321H
ADD BX, 1234H
4. 下列ASCⅡ码串(包括空格串)依次存储在起始地址为CSTRING的字节单元中:
MOV DL, BL
NOT DL
JZ ZERO
MOV AH, 0FFH
ZERO: MOV AH, 0
NEXT:
备选答案:
①JMP NEXT
②TEST DL, 28H
三、判断题 (在正确的叙述或指令前打,错误的题前打)(共20题)
( )1. PUSH 5588H
( ) 2. MOV DS, 1720H
2.阅读如下程序片段
MOV AL,0F3H
MOV DL,0C4H
ADD AL,DL
AND AL,0FH
执行上述程序片段后,(AL)=, CF=,OF=,PF=
3.阅读如下程序片段
MOV AL,7EH
MOV CL,04H
ROL AL,CL
执行上述程序片段后,(AL)=,(CL)=,CF=,OF=
4.阅读如下程序片段
ADC BX,[BX]
执行上述程序片段后,(BX)=,(CF)=,OF=,PF=
6.阅读如下程序片段,假设(SP)=0064H
LOOP R1
MOV CL, 8
IDIV CL
HLT
19.MOV AX, 1090H
SUB AX, 4AE0H
JC L1
JO L2
JMP L3
上述程序执行后AX=_______,程序转向_______
20.假设寄存器AX=1234H,DX=0A000H
MOV BX, 0
MOV CX, BX
SUB CX, AX
24.以下程序求出首地址为BUF的M字数组的内容之和。
DATA SEGMENT
BUF DW X1,X2,…,XM
COUNT EQU ($一BUF)/2
SUMDW?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:MOV AX, DATA
MOV DS, AX
3.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是( )。
A.C+D=BB.A+D=B
C.B=DD.A>C>D
4.下列四个寄存器中,可作为十六位寄存器的是( )
A.DLB.CL
C.BPD.EBX
5.8088/8086存储器分段,每个段不超过( )
A.64K个字B. 32K个字节 C.1兆个字节 D.64K个字节
SBB BX, DX
MOV AX, CX
MOV DX, BX
上述程序段执行后AX=_______ ,DX=_______
21.MOVAX, 234H
MOVCL, 3
ROLAX, CL
DECAX
MOVCX, 4
MULCX
此段程序执行完后,(AX)= _______ , (CX)= _______
22.DA1DB 83H,72H,61H,94H,5AH
执行MOV BX, LENGTH TAB指令后,BX的内容是。
14. 循环程序可由三个部分组成:设置循环初始部分、循环体和。
15. 在多个模块中传递参数的时候,在本模块中要使用另一个模块中的符号要用
伪操作进行说明符号,本模块中的符号要提供给另一个模块使用要用
伪操作进行说明符号,
16. 宏汇编的三个步骤是:、宏调用和宏展开。
JE EXIT
CMP AL, ‘a’
JB ERR
CMP AL,‘z’
JA ERR
MOV DL, AL
MOV AH, 2
INT 21H
JMP NEXT
ERR: LES DX, ERROR
MOV AH, 9
INT 21H
JMP NEXT
EXIT: MOV AH, 4CH
INT 21H
CODE ENDS
C.影响SF符号标志 D.影响CF进位标志
11.执行下列程序后,(AL)=( )H。
DATA SEGMENT
TAB DB‘0123456789’
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX, DATA
MOV DS, AX
MOV BX, OFFSET TAB
ERROR DB “INPUT EXCEEDS‘a’~‘z’,PLEASE INPUT AGAIN!”,0DH,0AH,‘$’
DATA ENDS
CODESEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
NEXT: MOV AH, 1
2.8086/8088系统中,I/O端口地址范围是。
3.8086/8088系统中,段内一个单元相对段的起始地址的距离称为, 它小于。
4.8086/8088CPU内部用来存放段地址的寄存器有。
5.在PC机中,使用、合成20位的物理地址,用以指向当前堆栈桟顶的位置。
6.一个字单元由二个连续的单元组成,其中数据的低8位存放在单元、高8位存放在单元。
MOV AL, 04
XLAT TAB
A.04B.0400
C.33D.34
12.下列指令中操作数在代码段中的是( )。
A.MOV AL, 25HB.ADD AH, BL
C.INC BYTE PTR [25H]D.CMP BL, AL
13.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用()
MOV BX,OFFSET BUF
MOV CX,COUNT
LOP1:ADD AX, [BX]
LOOP LOP1
MOV SUM,AX
MOV AH, 4CH
INT 21H
CODE ENDS
END START
25.以下程序完成将键盘输入的小写字母转换成大写字母并输出显示,直到输入字符“$”结束。
DATA SEGMENT
PRINTIT: MOV DL, AL
MOV AH, 2
INT 21H
JNZ ROTATE
POP DX
POP AX
POP CX
RET
BINTOHEX ENDP
备选答案:
① JL PRINTIT
② AND AL, OFH
③ DEC CH
27.下面程序段是判断寄存器BL中第3位、第5位是否同时为1,如同时为1,则AH置0,否则AH置全l。
( ) 12. SUB EAX, [ECX*10+100]
( ) 13. MOV DS, 1200H
( ) 14. XCHG 256, [100H]
( ) 15. OUT DX, AX
( ) 16. LEA VAR, [BP+SI]
( ) 17. NEG 88
( ) 18. INC WORD PTR [100H]
26.下面子程序完成把BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来。
BINTOHEX PROC NEAR
PUSH CX
PUSH AX
PUSH DX
MOV CH, 4
ROTATE: MOV CL, 4
ROL BX, CL
MOV AL, BL
ADD AL, 30H
CMPAL, 3AH
ADD AL, 7H
MOV AX,0632H
MOV BX,0C202H
SUB AX,BX
INC AX
执行上述程序片段后,(AX)=,(CF)=,OF=,PF=
5.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28H
MOV BX,0024H
LEA BX,[BX]
OR BX,0
A:NOTB:ORC:ANDD:XOR
14.下列指令中段默认为堆栈段的是( )
A.MOV AX,[BX+SI+10]B.ADD AX,ES:[SI]
C.SUB [BX],[BP][DI]D. MOV DX,[1000H]
15.设BL=05H,要使结果BL=0AH,应执行的指令是( )。
A.NOT BLB.AND BL
C:在内存空间中,可以无限分配段,且段的大小不受限制。
D:段与段之间可以邻接,也可以重叠。
18.下列关于堆栈的说法,错误的是()
A:以“先入后出”为原则。
B:栈区最高地址单元的前一个单元为栈底。
C:运行中SP寄存器动态跟踪栈顶位置。
D:压栈和弹出都是以字节为单位。
19.分配给INT 12H在中断向量表中的物理地址是 ( )。
7. 在指令中直接给出操作数的寻址方式称为。
8.设MASK为一个变量,在“MOV AX, MASK[SI+BX]”指令中,源操作数的寻址方式是,其物理地址是,目的操作数的寻址方式是
。
9.若(SS)=1100H,(SP)=0150H,那么执行PUSH EAX指令后SP的内容是,再执行POP CX指令后桟顶的物理地址是。
A.12HB.24H
C.36HD.48H
20.DOS调用INT 21H的键盘输入功能1和功能8的区别是( )。
A.功能1不回显而功能8回显B.功能1回显而功能8不回显
C.功能1和功能8都不回显D.功能1和功能8都回显
二、填空题(共27题)。(最后二题有备选答案)
1.设一存储单元中的二进制代码是83H,其对应的一个无符号数是,一个带符号数是。
17. 每种类型的中断都由相应的来处理。
18.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出)
FLD DW 10, -20, 30, -60, -71, 80, 79, 56
LEA SI,______
MOV CX, 8
XOR AX, AX
R1:ADD AX ,_____
ADD SI, 2
( ) 3. ADD AX, CL
( ) 4. AND AX,[DX]
( ) 5. MOV CS, 0600H
( ) 6. PUSH 074CH
( ) 7. ADD AX, CL
( ) 8. OR BX,[CX]
( ) 9 IMUL DX
( ) 10. XOR AL, BX
( ) 11. MOV [DX], BX
CSTRING DB‘PERSONAL COMPUTER’
请编写指令将字符串中的第1个和第7个字符传给DX寄存器。
五、程序分析题(分析程序段总的功能或回答相关问题或运行结果)(共14题)。
1.阅读如下程序片段
MOV AL,4CH
MOV BL,0B5H
ADD AL,BL
执行上述程序片段后,(AL)=,(BL)=,CF=,OF=
10. CPU执行“JMP BX”指令只改变,而不改变内容。
11.执行CALL NEAR PTR SUBROUT时,在修改IP/EIP内容之前应该。
12. STRING DB‘ABCDEFG’
COUNT EQU $-STRING
COUNT的值是,表示的意义是。
13. 数据定义语句:TAB DW 100 DUP(?)
一、单项选择题 (共20题)
1.对于有符号的数来说,下列哪个值最大( )
A:0F8HB:11010011B C:82D:123Q
2.下列有关汇编语言中标号的命名规则中,错误的是( )
A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符
C:?和$不能单独作为标号 D: .号不可位于标号首
MOV CX,WORD PTR [DA1]
AND CX,0FH
MOV AL,[DA1+3]
SHL AL,CL
上述指令序列执行后,AL=_______,CL=_______。
23.阅读如下程序片段
MOV AL,4CH
MOV BLຫໍສະໝຸດ Baidu86H
ADD AL,BL
执行上述程序片段后,(AL)=,(BL)=,
CF=,OF=
C.XOR BL, 0FHD.OR BL, 0FH
16.表示一条指令的存储单元的符号地址称( )。
A.标号B.变量
C.偏移量D.类型
17.关于8086/8088微机系列,下列说法哪个是正确的()
A:一个存储单元由16个二进制位组成,简称字。
B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。
6.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式()
A:寄存器寻址B:相对基址变址寻址
C:变址寻址D:基址变址寻址
7.连接程序把汇编语言源程序生成的目标文件(.OBJ文件)转换成( )。
A..OBJ文件B..EXE文件
C..LST文件D..CRF文件
8.在程序运行过程中,确定下一条指令的物理地址的计算表达式是( )。
A.(CS)×16+(IP)B.(DS)×16+(DI)
C.(SS)×16+(SP)D.(ES)×16+(SI)
9.若AX= - 15要得到AX=15应执行的指令是(A )
A.NEG AX B.NOT AX
C.INC AX D.DEC AX
10.8086/8088系统执行传送指令MOV时( )
A.不影响标志位B.影响DF方向标志
( ) 19 IMUL DX
( ) 20. XOR AL, BX
四、简答题(共4题)
1.标志寄存器:
2.逻辑地址:
3. 下列程序段执行完后,SF、ZF、CF、OF的内容是什么?
MOV BX, 4321H
ADD BX, 1234H
4. 下列ASCⅡ码串(包括空格串)依次存储在起始地址为CSTRING的字节单元中:
MOV DL, BL
NOT DL
JZ ZERO
MOV AH, 0FFH
ZERO: MOV AH, 0
NEXT:
备选答案:
①JMP NEXT
②TEST DL, 28H
三、判断题 (在正确的叙述或指令前打,错误的题前打)(共20题)
( )1. PUSH 5588H
( ) 2. MOV DS, 1720H
2.阅读如下程序片段
MOV AL,0F3H
MOV DL,0C4H
ADD AL,DL
AND AL,0FH
执行上述程序片段后,(AL)=, CF=,OF=,PF=
3.阅读如下程序片段
MOV AL,7EH
MOV CL,04H
ROL AL,CL
执行上述程序片段后,(AL)=,(CL)=,CF=,OF=
4.阅读如下程序片段
ADC BX,[BX]
执行上述程序片段后,(BX)=,(CF)=,OF=,PF=
6.阅读如下程序片段,假设(SP)=0064H
LOOP R1
MOV CL, 8
IDIV CL
HLT
19.MOV AX, 1090H
SUB AX, 4AE0H
JC L1
JO L2
JMP L3
上述程序执行后AX=_______,程序转向_______
20.假设寄存器AX=1234H,DX=0A000H
MOV BX, 0
MOV CX, BX
SUB CX, AX
24.以下程序求出首地址为BUF的M字数组的内容之和。
DATA SEGMENT
BUF DW X1,X2,…,XM
COUNT EQU ($一BUF)/2
SUMDW?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:MOV AX, DATA
MOV DS, AX
3.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是( )。
A.C+D=BB.A+D=B
C.B=DD.A>C>D
4.下列四个寄存器中,可作为十六位寄存器的是( )
A.DLB.CL
C.BPD.EBX
5.8088/8086存储器分段,每个段不超过( )
A.64K个字B. 32K个字节 C.1兆个字节 D.64K个字节
SBB BX, DX
MOV AX, CX
MOV DX, BX
上述程序段执行后AX=_______ ,DX=_______
21.MOVAX, 234H
MOVCL, 3
ROLAX, CL
DECAX
MOVCX, 4
MULCX
此段程序执行完后,(AX)= _______ , (CX)= _______
22.DA1DB 83H,72H,61H,94H,5AH
执行MOV BX, LENGTH TAB指令后,BX的内容是。
14. 循环程序可由三个部分组成:设置循环初始部分、循环体和。
15. 在多个模块中传递参数的时候,在本模块中要使用另一个模块中的符号要用
伪操作进行说明符号,本模块中的符号要提供给另一个模块使用要用
伪操作进行说明符号,
16. 宏汇编的三个步骤是:、宏调用和宏展开。