汇编模拟题及答案

更新时间:2024-05-11 19:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《汇编语言程序设计》模拟试题 一、单项选择题

1、指令JMP FAR PTR DONE属于(C)。 A.段内转移直接寻址B.段内转移间接寻址 C.段间转移直接寻址D.段间转移间接寻址 2、执行下面指令序列后,结果是(A)。 MOV AL,82H CBW

A.AX=0FF82H B.AX=8082H C.AX=0082H D.AX=0F82H 3、8088/8086存储器分段,每个段不超过(D)。 A.64K个字B.32K个字节C.1兆个字节D.64K个字节 4、CPU发出的访问存储器的地址是(A)。 A.物理地址

B.偏移地址C.逻辑地址

D.段地址

5、BUF DW 10H DUP(3 DUP(2,10H),3,5)

上述语句汇编后,为变量BUF分配的存储单元字节数是(B)。 A.80H B.100H C.124 D.192

6、若AX=-15要得到AX=15应执行的指令是(A)。 A.NEG AX B.NOT AX C.INC AX D.DEC AX 7、8086/8088系统执行传送指令MOV时(A)。

A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志

8、MOV AL,79 ADD AL,0B1H

上面指令执行后,设置的标志位CF和OF的值是(D)。 A.CF=0,OF=1 B.CF=1,OF=1 C.CF=0,OF=1 D.CF=1,OF=0

9、检查BUF的内容是否为正偶数,如是正偶数,则AL=0。下面程序段正确的是(C)。

A.MOV AL,BUF B.MOV AL,BUF JS K1 AND AL,11 SHR AL,1 JNZ K2 JNC K1 MOV AL,0 MOV AL,0 K2:?? K1:

1

C.MOV AL,BUF D.MOV AL,BUF TEST AL,81H JNP K4 JNZ K3 TEST AL,80H MOV AL,0 JNZ K4 K3:MOV AL,0 K4:

10、下列指令中操作数在代码段中的是(A)。

A.MOV AL,42H B.ADD AL,BL C.SUB[BX],DI D.INC[DI] 11、与MOV BX,OFFSET VAR指令完全等效的指令是(D)。 A.MOV BX,VAR B.LDS BX,VAR C.LES BX,VAR D.LEA BX,VAR

12、下列指令执行后对源和目的操作数均无影响的是(D)。 A.MOV[BX+2],AX B.SUB AX,2467H C.SBB[SI],BX D.CMP AX,BX

13、表示过程定义结束的伪指令是(A)。 A.ENDP B.ENDS C.END D.ENDM

14、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D)。

A.CMP B.SUB C.AND D.MOV

15、上面指令执行后,AX的内容是(A)。 A.0302H

B.0203H

C.0202H

D.0303H

16、BUF1 DB 3 DUP(0,2 DUP(1,2),3) COUNT EQU$-BUF1

符号COUNT等价的值是(B)。 A.6 B.18 C.16 D.8 17、DA1 DW 2A05H DA2 DB 0FAH ?

MOV AL,BYTE PTR DA1 SUB DA2,AL

上述指令执行后,DA2中的内容是(C)。 A.0DAH B.0FAH C.0F5H D.0D0H

18、为在一连续的存储单元中依次存放数据41H,42H,?,48H,下面的数据定义语句中有语法错误的是(B)。

2

A.DB 41H,42H,43H,44H,45H,46H,47H,48H B.DW 4142H,4344H,4546H,4748H C.DB‘ABCDEFGH'

D.DW‘BA',‘DC',‘FE',‘HG'

19、设(SP)=0028H,执行段内返回指令RET 6后,SP的内容是(C)。 A.0036H

B.0022H

C.0030H

D.0020H

20、条件转移指令JNBE产生转移的条件是(A)。 A.CF=0 AND ZF=0 C.CF=1 AND ZF=0 A.AL B.BL C.CH D.DX

22、在程序运行过程中,确定下一条指令的物理地址的计算表达式是(C)。 A.DS*16+SI B.ES*16+DI C.CS*16+IP D.SS*16+SP

23、物理地址(10FF0H)=10H,(10FF1H)=20H,(10FF2H)=30H,从地址10FF1H中取一个字的内容是(B)。

A.1020H B.3020H C.2030H D.2010H 24、将AX清零,下列指令错误的是(C)。

A.SUB AX,AX B.XOR AX,AX C.OR AX,00H D.AND AX,00H 25、下列指令中,影响或修改标志位的是(D)。 A.LOOPZ B.JNLE C.PUSHF D.POPF

26、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是(A)。

A.85B92H B.86192H C.BB690H D.12169H 27、通用数据传送指令中,错误的是(D)。

A.累加器到存储器B.立即数到存储器C.寄存器到存储器D.存储器到存储器 28、移位指令中,应先将移位次数放在(D)。 A.AX B.AL C.CX D.CL 29、MOV AL,79 ADD AL,0B1H

上述指令执行后,CF和OF的值是(D)。

A.CF=0 OF=1 B.CF=1 OF=1 C.CF=0 OF=0 D.CF=1 OF=0 30下列语句中能实现留空8个字节单元的语句是(D)。 A.DA1 DT? C.DA3 DD?

B.DA2 DW ?,? D.DA4 DQ?

B.CF=0 AND ZF=1 D.CF=1 AND ZF=1

21、下列寄存器中,作为16位寄存器的是(D)。

3

31、循环指令LOOPNZ终止循环的条件是(B)。

A.CX=0,且ZF=0 B.CX=0,或ZF=1 C.CX10,且ZF=0 D.CX10,或ZF=1 32、设DL=55H,执行指令后能使DL中的数据为0AAH的指令是(D)。 A.TEST DL,0AAH B.OR DL,0AAH C.NEG DL D.XOR DL,0FFH

33、完成同指令XCHG AX,BX相同功能的指令或指令序列是(D)。 A.MOV AX,BX B.MOV BX,AX C.PUSH AX D.MOV CX,AX POP BX MOV AX,BX MOV BX,CX

34、JMP BX的目标地址的偏移量为(A)。 A.BX的内容B.BX所指向的内存单元的内容 C.IP+BX的内容D.IP+[BX]

35、在程序执行过程中,IP寄存器中始终保存的是(B)。 A.上一条指令的首地址B.下一条指令的首地址

C.正在执行指令的首地址D.需计算有效地址后才能确定地址

36、用户为了解决自己的问题,用汇编语言所编写的程序,称为(B)。 A.目标程序B.源程序C.可执行程序D.汇编程序

37、某系列微机对存储器的分段,如果每一个段最多的字存储单元(16位二进制)是32K,那么表示段内字节单元偏移地址的二进制位数应是(B)。

A.20位B.16位C.15位D.12位

38、可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是(D)。 A.AX,BX,CX,DX B.DS,ES,CS,SS C.SP,BP,IP,BX D.SI,DI,BP,BX

39、用一条指令仅实现将BX+SI=>AX的方法是(D)。 A.XCHG AX,[BX][SI]B.MOV AX,[BX+SI] C.LEA AX,BX[SI]D.LEA AX,[BX][SI]

40、设SP初值为2000H,执行指令“PUSH AX”后,SP的值是(D)。 A.1FFFH B.1998H C.2002H D.1FFEH

41、条件转移指令JB产生程序转移的条件是(A)。 A.CF=1 B.CF=0 C.CF=1和ZF=1 D.CF=1和ZF=0 42、选用串操作指令时,错误的操作是(D)。

A.置方向标志位B.根据串操作指令设置重复次数并送入CX

C.设置源操作数及目的操作数指针D.源操作数和目的操作数都可以加段超

4

43、设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1。执行SBB AL,[SI]后,正确的结果是(C)。

A.AL=5FH SF=1 CF=1 B.AL=60H SF=1 CF=0 C.AL=5FH SF=0 CF=1 D.AL=60H SF=0 CF=0 44、设AX=1000H NEG AX NOT AX

执行上述指令后,正确的结果是(B)。

A.AX=1001H B.AX=0FFFH C.AX=1000H D.AX=0111H 45、CBW指令的功能是(B)。

A.把源操作数的符号位扩展到目的操作数中B.把AL中的符号位扩展到AH中

C.把AH中的符号位扩展到AL中D.把AX中的符号位扩展到DX中

46、汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是(A)。

A.Variable B.First&ld C.0FFFFH D.‘Memphis’ 47、ORG 0030H DA1 DB 0,‘0’,30H DW DA1

数据为3000H字存储单元的偏移地址是(A)。 A.0030H B.0031H C.0032H D.0033H 48、NUM1 DB(12 OR 6 AND 2)GE 0EH NUM2 DB(12 XOR 6 AND 2)LE 0EH

上述数据定义语句中,NUM1和NUM2字节单元的内容分别是(D)。 A.NUM1=0,NUM2=0 B.NUM1=0,NUM2=0FFH C.NUM1=0FFH,NUM2=0 D.NUM1=0FFH,NUM2=0FFH

49、要求将A,B两个字符的ASCⅡ码41H,42H顺序存放在连续两个字存储单元中,可选用的语句是(A)。

A.DA1 DB‘AB’B.DA1 DW‘AB’C.DA1 DB 0ABH D.DA1 DW 0ABH 50、DA1 EQU BYTE PTR DA2 DA2 DW 0ABCDH ┇

SHL DA1,1

5

C.AND AX,[BX][SI] A.4290H A.PUSHF

B.0A40H B.POPF

D.LEA AX,[BX][SI]

C.0C290H

D.0C260H

151、设AX中有一带符号数8520H,执行SAR AX,1指令后,AX中的值是(C)。 152、下列中指令执行后,能影响标志位的指令是(B)。

C.JNLE OPR

D.LOOPZ LOP

153、循环控制指令LOOPNZ继续执行循环的条件是(B)。 A.CX≠0且ZF=1 C.CX≠0或ZF=1 VAR1 DW 32H VAR2 EQU 32H ┇

MOV AX,VAR1 MOV BX,VAR2

A.都是立即数寻址B.前一条指令是立即数寻址,后一条指令是直接寻址 C.前一条指令是直接寻址,后一条指令是立即数寻址D.都是直接寻址 155、ARRAY DW 6,9,$+4,10H,1,$+4 ┇

MOV AX,ARRAY+4

设变量ARRAY的偏移量是0084H,上述指令执行后AX中的内容是(B)。 A.0009

B.008CH

C.0090H

D.0010H

156、设AX=0CCBBH,CF=1 AND AX,7FFEH RCR AX,1

上述两条指令执行后,AX和CF中的内容分别是(C)。 A.AX=265DH,CF=0 C.AX=A65DH,CF=0

B.AX=265DH,CF=1 D.AX=A65DH,CF=1 B.CX≠0且ZF=0 D.CX≠0或ZF=0

154、下面两个传送指令语句中源操作数寻址方式是(C)。

157、DA_B EQU BYTE PTR DA_W DA_W DW‘AB',‘CD',‘EF’,‘GH'

MOV BX,DA_W+3 MOV BH,DA_B+3

执行上述两条指令后,BX中的内容是(C)。 A.‘EF'

B.‘FC'

C.‘CC'

D.‘FF'

16

158、指令语句中标号的错误定义是(B) A.在代码段中的名字项定义,后面紧跟冒号 C.用LABEL伪指令定义 A.VAR1-VAR2 C.VAR1+VAR2

B.用EQU伪指令定义

D.由“JMP标号”指令定义

159、设VAR1和VAR2是已定义的变量名,非法的表达式是(C)。

B.VAR2-VAR1[BX] D.VAR1[BX]

160、为在一连续的存储单元中依次存放数据41H,42H,?,48H,下面的数据定义语句中有语法错误的是(B)。

A.DB 41H,42H,43H,44H,45H,46H,47H,48H B.DW 4142H,4344H,4546H,4748H C.DB‘ABCDEFGH'

D.DW‘BA',‘DC',‘FE',‘HG'

161、设NUM=11011011B,指令“MOV AH,NUM SHL 3”执行后AX中的值是(B)。

A.11011011000B 162、XOR AX,AX MOV CX,5 NEXT:ADD AL,6 AAA LOOP NEXT

上述程序段执行的结果是(C)。 A.AX=0030H

B.AX=0300H

C.AX=30

D.AX=001EH

163、如某循环程序是对两个数组进行某种运算处理,当数组处理完毕或运算处理的结果不为某一指定值时(每次循环时,对运算结果已进行了测试),就结束循环。如要求一定使用循环控制指令,这时应选用的指令是(C)。

A.LOOP 地址是(A)。

A.12FAH B.1305FH C.130FFH D.015FH 165、IP指令指针寄存器是属于(D)。

A.通用寄存器B.段寄存器C.变址寄存器D.控制寄存器 166、下面有语法错误的指令是(D)。 A.ADD AL,AH B.ADD[BX+3],AL

C.ADD AH,[DI]D.ADD[BP+2],DA1;(DA1是变量名)

B.JMP C.LOOPNE/LOOPNZ

D.JCXZ

164、在DEBUG上机调试程序时,存储器地址表示为12FA:015F,它的物理

B.11011000B

C.00011011B

D.00011011011B

17

167、完成对DX的有符号数除以2的指令是(B)。 A.IDIV 2 B.SAR DX,1 C.ROR DX,1 D.RCR DX,1 168、使进位位置1的指令是(C)。 A.CLC B.CMC C.STC D.NOP

169、设AL=-15,要使AL=15应执行的指令是(A)。 A.NEG AL B.NOT AL C.INC AL D.DEC AL

170、在条件转移指令中,结果为负数则转移的指令是(C)。 A.JNS B.JX C.JS D.JP

171、下面的XCHG指令中,语法正确的是(B)。 A.XCHG AL,DS B.XCHG BL,[BX] C.XCHG AL,0FH D.XCHG BUF1,BUF2

172、一条指令中目的操作数不允许使用的寻址方式是(B)。 A.寄存器寻址B.立即数寻址C.变址寻址D.寄存器间接寻址 173、设SP=1FFEH,执行下列指令后,SP寄存器的值是(D)。 POPF PUSH AX

A..2000H B.2002H C.1FFCH D.1FFEH

174、LDS SI,ES:[2000H]指令的全部功能是(C)。 A.把地址2000H送SI

B.把地址2000H字单元的内容送SI

C.把地址2000H字单元内容送SI,把2002H字单元内容送DS D.把地址2000H字单元内容送DS,把2002H字单元内容送SI 175、设AL=04H,BL=0F8H,执行MUL BL指令后,结果是(C)。 A.AX=0032H B.AX=00E0H C.AX=03E0H D.AX=0FFE0H

176、设ES=3000H,DI=00FFH,CX=0005H,AL=41H,DF=0,从300FFH开始的连续5个字节单元内容分别是44H,43H,42H,41H,41H。执行REPNZ SCASB指令后,正确的结果是(B)。

A.DI=0104H,CX=0000H B.DI=0103H,CX=0001H C.DI=0102H,CX=0002H D.DI=0101H,CX=0003H 176、某数据段如下: DATA SEGMENT ORG 20H X DB 12H Y DW 789AH

18

DATA ENDS

Y单元的偏移地址是(C)。 A.0 B.20H C.21H D.12H

177、下面指令语句中,语法正确的是(D)。 A.INC[BX]B.CMP[BX],60

C.JMP FAR OPR D.MOV WORD PTR[BX],5 178、DATA SEGMENT DA1 DB 32 DUP(?) DA2 DW 1456H,789AH DA3 DW DA2 DATA ENDS ?

MOV BX,DA3

上述指令执行后,BX中的内容是(A)。 A.20H B.31 C.32H D.21H 179、已定义数据段 DATA SEGMENT ORG 0213H

DA1 DB 15H,34H,55H ADR DW DA1 DATA ENDS

能使AX中数据为偶数的语句是(C)。 A.MOV AX,WORD PTR DA1 B.MOV AL,DA1+2

C.MOV AL,BYTE PTR ADR+1 D.MOV AX,WORD PTR DA1+2

180、如代数据段名为DATA_SEG,它的起始地址为20A00H,对数据段寄存器DS赋值段地址值的方法是(D)。

A.MOV DS,20A0H B.ASSUME DS:DATA_SEG C.DATA_SEG SEGMENT D.MOV AX,DATA_SEG MOV DS,AX

181、 OV AL,-1 NEG AL XOR AL,65

上述程序段执行后,AL中的内容是(A)。 A.40H B.64H C.01H D.61H

19

182、用CMP指令对两个无符号数进行A-B的比较后,如A=B或A>B,则分别产生转移,这种情况应选择的条件转移指令是(C)。

A.先用JE指令,再用JNC指令 B.先用JNC指令,再用JE指令

C.上述两条条件转移指令(JE和JNC)无先后次序 D.用上述两个条件转移指令不能完成上述功能要求 二、填空题

1.假设某个字的值是1234H,其低位字节地址是20H,高位字节地址是21H,那么该字的字地址是___20H_____。

2.“SHL OPR,CNT”指令中OPR可以是除_立即数_____以外的任何寻址方式。 3.“VAR DB 5 DUP(8,2 DUP(5))”语句汇编应分配__55____个字节单元。

4.指令“MOV AX,20H[SI]”中源操作数的物理地址表达式是__DS*10H+SI+20H____。

5.乘法指令语句“MUL CL”,16位的乘积存放在__AX____中。

1.在8086/8088系统中,存储器是分段的,每段最大长度是_______字节,段内偏移地址从_______到_______。

2.在程序调试时,显示某指令存放地址是2340H:0056H,则物理地址是_______。

3.汇编语言源程序中的语句有三种类型,它们是__指令性_____语句,_指示性______语句和__宏指令_____语句。

4.指令MOV AX,[BX+SI+10H]源操作数寻址方式是_相对基址变址______。 5.执行段间返回指令RET时,将栈顶的一个字弹出到__IP_____后,又弹出一个字到__CS_____寄存器中。

6.已知DS=3000H,DI=1200H,(31200H)=64H,(31201H)=93H,执行NEG WORD PTR[DI]后,(31200H)=__6DH_____,(31201H)=__9BH_____。

7.执行下列指令序列 MOV AL,80H MOV BL,08H CBW IDIV BL

则AH=____0___AL=__10H_____。 8.已知数据定义语句 ORG 120H

20

23、阅读程序段:

BLOCK DB 20H,1FH,08H,81H,0FFH,? 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)该程序循环的次数是多少?

(1)该程序完成的功能是从20H(32)个有符号数中找出最小的数送入RESULT单元中。

(2)该程序的循环次数是1FH(31)。

24、阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 ORG 100H

BLOK DW X1,X2,?,XN COUNT EQU($-BLOLOK)/2 RESULT DW COUNT,? LEA BX,BLOK-2 MOV CX,RESULT XOR AX,AX GOON:ADD BX,2 CMP AX,[BX] JAE NEXT MOV AX,[BX] NEXT:LOOP GOON MOV RESULT+2,AX

36

程序段执行完,回答下述问题

RESULT+2字存储单元的内容=______;BX=______;程序循环次数=______ RESULT+2字存储单元的内容是MAX(X1, X2, ? XN) BX= 100H + 2×(COUNT-1) 程序循环次数=COUNT

25、对于下面的数据定义,各条MOV的指令单独执行后,有关寄存器的内容是什么?

FLDB DB?

TAB1 DW 20 DUP(?) TAB2 DB’ABCD’

A. MOV AX,TYPE FLDB B. MOV AX,TYPE TAB1 C. MOV CX,LENGTH TAB1 D. MOV DX,SIZE TAB1 E. MOV CX,LENGTH TAB2

A. AX=1 B. AX=2 C. CX=20 D. DX=40 E. CX=1 26、下面程序段执行完后,AL的内容是什么? MOV AL,10 ADD AL,AL SHL AL,1 MOV BL,AL SHL AL,1 ADD AL,BL AL=120

27、试问下面的程序段完成的功能是什么? SAL AX,1

RCL DX,1

第一条指令是把AX算术左移一位;第二条指令是把DX带进位循环左移一位。

28、假设X和X+2单元的内容为双精度数P,Y和Y+2单元的内容为双精度数Q(X和Y为低位字),试说明下列程序段做什么工作?

MOV DX,X+2 MOV AX,X

37

ADD AX,X ADC DX,X+2 CMP DX,Y+2 JL L2 JG L1 CMP AX,Y JBE L2 L1:MOV AX,1 JMP SHORT EXIT L2:MOV AX,2

EXIT:INT 20H

首先把P乘上2,然后比较2P的高16位与Q的高16位,如果前者小于后者,则把AX置上1,如果前者大于后者,则把AX置上2,如果相等,则比较2P的低16位和Q的低16位,如果前者小于等于后者,则把AX置上2,如果前者大于后者,则把AX置上1。

29、MOV AX,9090H SUB AX,4AE0H JC L1 JO L2 JMP L3

上述程序执行后AX=__45B0H_____,程序转向__L3_____ 30、假设寄存器AX=1234H,DX=0A000H MOV BX,0 MOV CX,BX SUB CX,AX SBB BX,DX MOV AX,CX MOV DX,BX

上述程序段执行后AX=EDCCH______,DX=5FFFH_____ 程序功能是_______

31、BUF DB 45H,68H,7AH,35H,39H ?

MOV DI,OFFSET BUF MOV CX,5

38

MOV AL,‘a' CLD REP STOSB

该程序段执行后,BUF中的内容是____61H ___,方向标志 DF=0 ____ 32、假设寄存器AX=5AH,CX=23H ? MOV DL,0 LOP:SUB AX,CX JC NEXT INC DL JMP SHORT LOP NEXT:ADD AX,CX HLT

上述程序段执行后,AX=04H_____,DL=___2____

用数学表达式指明程序功能:_实现DL=AX/CX AX=AX MOD CX______ 33、A DW 1234H B DW 5678H : PUSH A PUSH B POP A POP B

试回答:A.上述程序段执行后(A)=,(B)=。B.设执行前SP=2000H,执行后SP=。 ①(A)=5678H (B)=1234H ②SP=2000H

34、现有下列程序段: MOV AX,6540H MOV DX,3210H MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL

39

OR DL,BL

试问上述程序段运行后,

(AX)=5400H (BL)=06H (DX)=2106H

35、分析下面程序段, MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL

试问程序段执行后(BL)=0E4H (AL)=0DDH 36、程序段如下:

BLK1 DB 46,84,34,-5,20,122,73 :

MOV CX,7 LEA S1,BLK1 NEXT:MOV AL,[SI] INC SI TEST AL,81H LOOPZ NEXT MOV BL,[SI] :

请回答程序段运行后: (AL)=-5或0FBH (BL)=14H或20

37、STRING DB‘ABCDEFGHI’ :

MOV AH,01;从键盘输入字符1~9 INT 21H AND AL,0FH DEC AL XOR AH,AH

MOV BX,OFFSET STRING ADD BX,AX

40

本文来源:https://www.bwwdw.com/article/2g7g.html

Top