汇编语言复习提纲Word文档格式.docx
《汇编语言复习提纲Word文档格式.docx》由会员分享,可在线阅读,更多相关《汇编语言复习提纲Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
(A)寄存器寻址
(B)立即数寻址
(C)变址寻址
(D)直接寻址
22.设SP=1FFEH,执行下列指令后,SP寄存器的值是。
C
┇
POPF
PUSHBX
┇
(A)2000H
(B)2002H
(C)1FFCH
(D)1FFEH
23.LESSI,[2000H]指令的全部功能是。
(A)把地址2000H送SI
(B)把地址2000H字单元的内容送SI
(C)把地址2000H字单元内容送SI,把2002H字单元内容送ES
(D)把地址2000H字单元内容送ES,把2002H字单元内容送SI
24.设AL=04H,CL=0F8H,执行MULCL指令后,结果是。
(A)AX=0032H
(B)AX=00E0H
(C)AX=03E0H
(D)AX=0FFE0H
25.设ES=3000H,DI=00FFH,CX=0005H,AL=41H,DF=0,从300FFH开始的连续5个字节单元内容分别是44H,43H,42H,41H。
执行REPNZSCASB指令后,正确的结果是。
(A)DI=0104H,CX=0000H
(B)DI=0103H,CX=0001H
(C)DI=0102H,CX=0002H(D)DI=0101H,CX=0003H
28.某数据段如下:
DATASEGMENT
ORG 20H
X DB 12H,'
AB'
Y DW 789AH
DATAENDS
Y单元的偏移地址是。
(A)20H
(B)21H
(C)22H
(D)23H
29.下面指令语句中,语法正确的是。
(E)INC[BX]
(F)CMP[BX],20
(G)JMPFAROPR
(H)MOVWORDPTR[BX],20
30.DATA SEGMENT
DA1 DB 30DUP(?
)
DA2 DW 1456H,789AH
DA3 DW DA2
DATA ENDS
MOV BX,DA3
上述指令执行后,BX中的内容是。
A
(A)30
(B)31
(C)32(D)21H
34.数据定义如下:
BUF1 DB 10
BUF2 DW 20DUP(?
实现将BUF1单元的内容与BUF2开始的条三个字节单元内容相比较的指令是。
(A)CMPBUF1,BYTEPTRBUF2+3
(B)MOVAL,BUF1
CMPAL,BUF2+2
(C)MOVAL,BUF1
CMPAL,BYTEPTRBUF2+2
(D)MOVAL,BUF1
CMPAL,BUF2+3
39.执行循环指令LOOPNZEND0时,若要使其重复执行,应满足的条件是。
A
(A)CX≠0且ZF=0
(B)CX≠0或ZF=0
(C)CX≠0且ZF=1
(D)CX≠0或ZF=1
40.当一个程序使用DOS系统功能调用退出用户程序时,在编写INT21H指令前,应选用的指令是。
(A)MOVAH,01H
(B)MOVAX,4CH
(c)MOVAH,4CH
(D)RET
48.用CMP指令对两个无符号数进行A-B的比较后,若A=B或A>
B,则产生转移,这种情况应选择的条件转移指令是。
(A)先用JE指令,再用JNC指令
(B)先用JNC指令,再用JE指令
(C)上述两条条件转移指令(JE和JNC)无先后次序
(D)用JL/JGE指令
试题二
2.下面四个寄存器中,不能作为间接寻址的寄存器是。
(A)BX
(B)CX
(C)BP
(D)DI
3.用来表示堆栈指针的寄存器是。
(A)IP
(B)BP
(C)SP
(D)SI
6.完成将AX清零,并使标志位CF清零,下面错误的指令是。
C
(A)SUBAX,AX
(B)XORAX,AX
(C)MOVAX,00H
(D)ANDAX,00H
7.下面数据传送指令中,正确的指令是。
D
(A)MOVBUF1,BUF2内存-内存
(B)MOVCS,AX差一句
(C)MOVCL,1000H8-16位
(D)MOVDX,WORDPTR[SP+SI]
8.下面指令中,源操作数的寻址方式为直接寻址的指令是。
D
(A)ADDAX,WORDPTR[BX+DI]
(B)ADDAX,BX
(C)INCCX(D)MOVBX,7FFFH
13.下面表示段定义结束的命令是。
B
(A)ENDP
(B)ENDS
(C)ENDM无此命令(D)NED无此命令
14.设AL,BL中都是有符号数,当AL≤BL时转至NEXT处,在CMPAL,BL指令后应选用正确的条件转移指令是。
B
(A)JBE
(B)JNGP320
(C)JNA
(D)JNLE
15.指令LOOPZ的循环执行条件是。
(A)CX≠0并且ZF=0
(B)CX≠0或ZF=0
(C)CX≠0并且ZF=1
(D)CX≠0或ZF=1
16.执行下列指令后,SP寄存器的值是。
A
MOV SP,1000H
PUSHF
(A)0FFEH
(B)OFFFH
(C)1001H(D)1002H
31.完成将有符号数BX的内容除以2的正确指令是。
B
(A)SHRBX,1
(B)SARBX,1
(C)RORBX,1
(D)RCRBX,1
32.下面指令中影响状态标志位CF的指令是。
DP73
(A)INCAX
(B)DECAX
(C)NOTAX
(D)NEGAX
33.判断当CX=0时,转ZERO执行的错误指令是。
BMOV AX,CX非运算语句
(A)CMPCX,0
JZZERO
(B)MOV AX,CX
JZZERO
(C)ORCX,CX
JZ ZERO
(D)JCXZZERO
45.调用2号DOS系统功能,在屏幕上显示一个字符,事先要其ASCII码存放在。
DP332
(A)AL中
(B)BL中
(C)CL中
(D)DL中
46.设数据定义如下:
ARRAY DW 1,2,3
执行指令ADDSI,TYPEARRAY相当于完成下面同等功能的指令是。
BP41
(A)ADDSI,O
(B)ADDSI,2
(C)ADDST,3
(D)ADDSI,0
47.设数据定义如下:
BUFDW 100DUP(?
执行指令MOVCX,LENGTHBUF相当于完成下面同等功能的指令是。
C
(A)MOVCX,00C8H
(B)MOVCX,0200H
(C)MOVCX,0064H(D)MOVCX,0100H
49.以下能表示指令存放地址的是()。
C
(A)符号名(B)变量名(C)标号(D)常量
50.完成寄存器BX的内容求补运算,下面错误的指令是。
C,D
(A)NEGBX
(B)NOTBX
INCBX
(C)XORBX,0FFFFH
INCBX
(D)MOVAX,0
SUBAX,BX
51.判断当AX的内容为负数时,转MINUS执行,下面错误的指令是。
(A)NOTAX
JNSMIBUS
(B)TESTAX,8000H
JNZ MINUS
(C)SHLAX,1
JC MINUS
(D)ORAX,AX
JSMINUS
52.下面指令序列执行后,正确的结果是。
MOV AL,OFFH
ADD AL,AL
ADC AL,AL
(A)AL=0F8H CF=1
(B)AL=0F8H CF=0
(C)AL=0F9H CF=0(D)AL=0FDH CF=1
53.用户为了解决自己的问题,用汇编语言所编写的程序,称为()B
(A)目标程序(B)源程序(C)可执行程序(D)汇编程序
试题三
18.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。
④
①无符号十进制数136②带符号十进制数-120的补码表示
③压缩型BCD码十进制数88④8位二进制数-8的补码表示
19.指令指针寄存器是()。
①
①IP②SP③BP④PSW
20.当执行指令ADDAX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。
①
①表示结果中含1的个数为偶数②表示结果中含1的个数为奇数
③表示该数为偶数④表示结果中低八位含1的个数为偶数
26.执行下列指令后,正确的结果是()。
②
MOVAL,100
MOVBL,-2
①AL=100HBL=02H②AL=64HBL=0FEH
③AL=64HBL=82H④AL=100HBL=0FEH
27.设数据段中已有:
DA1DB12H,34H
DA2DW56H,78H
下面有语法错误的句是()。
①
①ADR1DWDA1②MOVDA1+1,AX
③MOVBYTEPTRDA2+1,AL④MOVWORDPTRDA1+1,AX
35.设AL=0B4H,BL=11H,指令“MULBL”和指令“IMULBL”分别执行后OF,CF的值为
①OF=1,CF=0②OF=1,CF=1②P76
③OF=0,CF=0④OF=0,CF=1
36.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()。
②
①CX=0且ZF=0②CX=0且ZF=1
③CX=0或ZF=0④CX=0或ZF=1
37.MOVAX,ES:
COUNT[DI]源操作数的寻址方式是()③
①.基址寻址 ②.立即寻址 ③.变址寻址 ④.基址变址寻址
38.在汇编语言程序中,对END语句的叙述正确的是()。
③
①END语句是一可执行语句②END语句表示程序执行到此结束
③END语句表示源程序到此结束④END语句在汇编后要产生机器码
41.指令MOVBX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为()②
①.17500H ②.16500H ③.14500H ④.13500H
42.下列指令执行后总是使CF=0,OF=0的是()。
③
①AND②NEG③NOT④INC
43.完成同指令XCHGAX,BX相同功能的指令或指令序列是()。
④
①MOVAX,BX②MOVBX,AX
③PUSHAX④MOVCX,AX
POPBXMOVAX,BX
MOVBX,CX
44.设AH=0,AL=06H,BL=09H,执行指令
ADDAL,BL
AAA
之后,其结果应是()。
①AH=01,AL=05②AH=1AL=15
③AH=0AL=0FH④AH=0AL=05
54.下面的数据传送指令中,错误的操作是()。
④立即数?
①MOVSS:
[BX+DI],1000H②MOVDX,1000H
③MOVWORDPTR[BX],1000H④MOVDS,2000H
55.下面指令执行后,变量DAB中的内容是()。
DAWDW2A05H
DABDB0FAH
MOVAL,BYTEPRTDAW
SUBDAB,AL
①0DAH②0FAH③0F5H④0D0H
56.下列四组寄存器中,在段内寻址时可以提供偏移地址的寄存器组是()③
①.AX,BX,CX,DX ②.BP,SP,IP,CS
③.BX,BP,SI,DI ④.BH,BL,CH,CL
57. 下列传送指令中,有语法错误的指令是()。
①.MOVCS,AX ②.MOVDS,AX
③.MOVES,AX ④.MOVSS,AX
58.当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是()。
③
①JLE②JNL③JNLE④JL
59.下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为②
TESTBH,01H逻辑与
_________K1
①JNE②JNZ③JS④JC
60.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是()。
①TESTBL,4FH
JZNEXT
②XORBL,4FH
③ANDBL,4FH
④ORBL,4FH
二.填空题:
(本题共12空,每空2分,共24分)
2.8086/8088CPU允许的最大存储空间为1MB,其地址编号从00000H到
0FFFFFHH。
3.汇编语言是一种面向机器的语言。
完成将汇编语言源程序翻译成机器语言目的程序的翻译程序称汇编程序。
6.8086/8088的存储器是分段的,因此存储单元的物理地址是由段地址和
偏移地址组合而成的。
7.标号和变量(名字)均有三种属性,它们是段属性(SEG)、偏移属性(OFFSET)和类型属性(TYPE)属性。
12.在16位存储单元中能存储的最大无符号数为65535,能表示的有符号数的范围是̶8000HH到7FFFHH。
1.用IP寄存器与CS段寄存器联合确定下一条指令的物理地址。
5.汇编语言源程序中的语句有三种类型,它们是指令语句,伪指令语句及宏指令语句。
8.清除AX寄存器的逻辑指令可以是XORAX,AX或ANDAX,0000H。
9.设数据段的段地址为2A66H,其中某数组中第5个字节存储单元的物理地址为2A835H,试问该数组中首字节的偏移地址是01D1H。
11.数据定义如下:
X1 DB 10H,100,-1
X2 DW 10H,100,-1
X3 DD ?
COUNT EQU X3-X1
变量COUNT的值是9,其表示的意义是分配给变量X1和X2的字节数目。
13.执行指令MOVAX,0
MOVAL,09H
ADDAL,4
若要获得结果AX=0103H,则在ADD指令之后,加一条AAA指令,若要获得结果AL=13H,在ADD指令之后加一条DAA指令。
、如不加,则结果为0DH
4.完成下列操作,选用什么指令:
(1)将AX的内容,减去0520H,和上次运算的借位;
(2)将变量名TABL的段地址送AX;
解:
(1)SBBAX,0520H(2分)
(2)MOVAX,SEGTABL(2分)
10.D1DB20HDUP(?
D2DWD1
请写出用一条指令实现取D1的偏移地址=>
SI中的三种方法。
①LEASI,D1
②MOVSI,OFFSETD1
③MOVSI,D2
14.在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。
例如:
PUSHAX
PUSHBX;
保护现场
PUSHCX;
PUSHDX ;
:
}恢复现场
试写出恢复现场时的指令序列。
POPDX(2分)
POPCX(2分)
POPBX(2分)
POPAX(2分)
三、简答题:
1.在以BUFFER为首地址的内存区,存储的一组数据如图所示,试用一条DUP语句来完成该数据定义。
解:
BUFFERDB2DUP(0,2DUP
(1),2,3)
4.在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。
5.完成下列操作,选用什么指令:
6.D1DB20HDUP(?
2.选用合适的指令,分别完成下列操作:
(1)将字变量VARY的偏移地址送BX寄存器;
(2)将字变量VARY的内容送CX寄存器;
(3)将字变量VARY的类型值送DX寄存器;
(1)MOVBX,OFFSETVARY
(2)MOVCX,VARY
(3)MOVDX,TYPEVARY
3.设有数据定义伪指令如下:
ORG 2000H
ARRAYDW 0100H,0200H,$-2,0300H,$+2
请画出存储单元数据的存储形式。
7.DA1 DB 20HDUP(?
DA2 DW 10H,45H,7856H
请用两种方法,分别只用一条指令实现将DA1数据区中数据个数送入CX。
方法1:
MOV CX,DA2-DA1或MOV CX,LENGTHDA1
方法2:
MOV CX,SIZEDA1
8.用三种不同方法实现在字存储单元DA1中存储2000H的内容。
MOV BX,[2000H]
MOV DA1,BX
MOV SI,2000H
MOV AX,[SI]
MOV DA1,AX
方法3:
PUSH[2000H]
POPDA1
9.已知:
BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数据的物理地址。
(1)MOV AL,[BP+20H]
(2)MOV [BX+DI-80H],AL
(3)MOV BL,ES:
[SI+40H]
(1)10000H+2468+20H=12488H
(2)20000H+1357H+2000H-80H=232D7H
(3)30000H+1000H+40H=31040H
四、程序填空题
1.设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。
TESTAX,8000H测试数的正负
___________
MOVPLW,BX否则,……
JMPDONE
K1:
________
DONE:
①JEK1或JZK1(3分)
②MOVPLW,AX(3分)
2.设A,B是长度为10的字节数组,用串操作指令编写程序实现A,B两数组内容的相互交换。
试完善本程序。
(每一空白处只填一条指令)
DATA SEGMEMT
A DB 1,2,3,4,5,6,7,8,9,0AH
ORG 0010H
B DB 0AH,9,8,7,6,5,4,3,2,1
DATA ENDS
┇
MOV SI,0
MOV DI,0
MOV CX,10
MEXT:
MOV AL,A[SI]
MOV BL,B[DI]
MOV A[SI],BL
MOV B[DI],AL
INC SI
INC DI
LOOP NEXT
3.下面程序段利用DOS系统功能调用,完成将键盘输入的小写字母转换成大写字母后输出显示,直到输入ˊ$ˊ字符时结束。
请将程序补充完整。
CODE SEGMENT
ASSUME CS:
CODE
DISPLAY PROC NEAR
BEGIN:
MOV AL,01H
INT 21H
JZ STOP当键盘输入的零字符,则……
CMP AL,'
a'
JB STOP键盘输入的字符比‘a’小,则……
Z'
JA STOP
MOV AL,02H
INT 21H
JMP BEGIN
STOP:
RET