汇编语言期末复习题
一、单项选择题
1.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区第一个字单元的物理地址是( )。
A.12B5BH B.12B6BH C.12C59H D.12BFEH
2.在IN AL,PORT指令中,PORT称为( )。
A.立即数 B.有效地址 C.端口地址 D.寄存器名
3.在下列指令的中,不能实现把AX寄存器内容清零的指令是( )。
A.SUB AX,AX B.XOR AX,AX
C.OR AX,0000H D.AND AX,0000H
4.条件转移指令JNE的测试条件为 ( )。
A.ZF=0 B.CF=0 C.ZF=1 D.CF=1
5.8086CPU在基址加变址的寻址方式中,变址寄存器可以为( )。
A.BX或CX B.CX或SI
C.DX或SI D.SI或DI
6.设(AX)=1000H,
NEG AX
NOT AX
执行上述两条指令后,正确的结果是( )。
A.(AX)=1001H B.(AX)=0FFFH;
C.(AX)=1000H D.(AX)=0111H。
7.串指令中的目的操作数地址一定是由( )提供。
A.ES:[DI] B.SS:[BP]
C.DS:[SI] D.CS:[IP]
8.将DX的内容除以2,正确的指令是( )。
A.DIV 2 B.DIV DX,2
C.SAR DX,1 D.SHL DX,1
9.用户为了解决自己的问题,用汇编语言所编写的程序,称为( )。
A.目标程序 B.汇编语言源程序
C.可执行程序 D.汇编程序
10.用一条指令仅实现将AX←BX+SI的方法是( )。
A.XCHG AX,[BX][SI]
B.MOV AX,[BX+SI]
C.LEA AX,BX[SI]
D.LEA AX,[BX][SI]
11.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( )。
A.1FFFH B.1998H C.1FFEH D.2002H
12.一个字为( )位二进制数。
A.8位 B.16位 C.32位 D.64位
13. 下列四个寄存器中,可作为八位寄存器的是( )。
A.AX B.CH C.BP D.IP
14. 设AL=0AH,下列指令执行后能使AL=05H的是( )。
A. NOT AL B. AND AL,0FH C. XOR AL,0FH D. OR AL,0FH
15.8086系统的存储器,存储单元的物理地址是( )位。
A.16 B.8 C.20 D.32
16.在双操作数指令中,目的操作数不能使用( )。
A.存储器 B.寄存器 C.立即数 D.段寄存器
17. 在执行下列指令时,需要使用段寄存器DS的指令是( )。
A. STOSW B. ADD AL,CL C. NEG BX D. INC DA[BX]
18.执行MOV BX,OFFSET TTR,结果相等的指令是( )。
A. MOV BX,TTR
B. LEA BX,TTR
C. PUSH TTR
POP BX
汇编table指令什么意思 D. XCHG BX,TTR
19. 汇编语言语句格式中对名字项的规定如下,请出其中错误的说法( )
A. 名字的第一个字符可以是大写英文字母及小写英文字母
B. 名字的第一个字符可以是字母、数字及、@、_
C. 名字的有效长度≤31个字符
D. 在名字中不允许出现$
20.在下列指令中,有错误的是( )。
A.MOV AX,5634H B.MOV BL,3456H
C.MOV AL,75H D.MOV BX,57H
21. 无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是( )
A. ADD BH,01H B. OR BH,01H C. XOR BH,01H D. TEST BH,01H
22.下列指令中有错误的是( )。
A.POP AX B.MOV DS,AX C.ADD BX,25H D.SHR AX,8
23.下面各传送指令中,正确的是( )
A. MOV [DI],[SI] B. MOV[DX+DI],AL
C. MOV WORD PTR [BX],0100H D. MOV AL,BX
24.要使串操作指令从高地址向低地址执行,应把标志位置为( )。
A.TF=0 B.SF=1 C.IF=0 D.DF=1
25.下列语句格式有错误的是( )。
A. LEA BX,STR B.XCHG BL,AL
C.DATA:DB ‘AB’ D.EMP = EMP+1
二、简答题
1.写出完成下述功能的程序段:
(1)传送25H到AL寄存器
(2)将AL的内容乘以2
(3)传送15H到BL寄存器
(4)AL的内容乘以BL的内容
并请写出最后(AX)=?
2.写一程序段,求双字长数DX∶AX的相反数。
3.在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如:
PUSH AX\
PUSH BX \ 保护现场
PUSH CX /
PUSH DX/
:
}恢复现场
试写出恢复现场时的指令序列。
4.完成下列操作,选用什么指令:
(1)将AX的内容,减去0520H,和上次运算的借位;
(2)将变量名TABL的段地址送AX;
5.D1 DB 20H DUP(?)
D2 DW D1
请写出用一条指令实现取D1的偏移地址=>SI中的三种方法。
6. 简述上机运行汇编语言程序的过程。
7.(6分)
ARY DW 10 DUP(?)
┇
MOV AL,TYPE ARY
MOV BL,LENGTH ARY
MOV CL,SIZE ARY
上述MOV指令序列执行后的结果是什么?
8. 写出不使用串指令实现下列程序段相同功能的程序段。
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,X
LEA DI,Y
MOV CX,100
CLD
REP MOVSW
9. DA_BYTE LABEL BYTE
DA_WORD DW 20H DUP (?)
上面两条指令分别执行后,各将该数组中的第几个字节置0?
(1) MOV DA_WORD+2,0
(2) MOV DA_BYTE+2,0
三,程序分析题
1.(6分)有下面一段程序
A DW 1234H
B DW 5678H
:
PUSH A
PUSH B
POP A
POP B
试回答:
上述程序段执行后(A)=_____,(B)=_____;
②设执行前SP=200H,执行后SP=____ 。
2. 现有下列程序段:
MOV AX,6540H
MOV DX,3210H
MOV CL,04
SHL DX,CL
MOV BL,AH
SHL AX,CL
SHR BL,CL
OR DL,BL
试问上述程序段运行后, (AX)=___(BL)=___(DX)= ___。
3.已知:
BX=4567H
NEG BX
INC BX
NEG BX
DEC BX
程序段执行后,BX=_______,CF=_______。
4.执行下列程序段后,回答问题。
ORG 1221H
NUM DW 12H
…
MOV AX,NUM
MOV BX, OFFSET NUM
MOV CL,BYTE PTR NUM+1
MOV CH,TYPE NUM
HLT
请问:(AX)=______,(BX)=______,(CX)=______。
5.现有一子程序:
SUB1 PROC
TEST AL,80H (检测AL中的数值最高位)
JE PLUS
TEST BL,80H
JNE EXITO
JMP XCHANGE
PLUS:TEST BL,80H
JE EXITO
XCHANGE:XCHG AL,BL
EXITO:RET
SUB1 ENDP
试回答:(1)子程序的功能是什么?
(2)若调用子程序前AL=9AH,BL=77H,则返回主程序时,AL=______,BL=______。
6.现有如下程序段:
DATA SEGMENT DA3 EQU1234H
ORG 0020H DA4 EQU $-DA2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论