配色: 字号:
汇编语言题库
2015-02-25 | 阅:  转:  |  分享 
  
1

大学课程《汇编语言程序设计》模拟试题

一、单项选择题

1、指令JMPFARPTRDONE属于(C)。

A.段内转移直接寻址B.段内转移间接寻址

C.段间转移直接寻址D.段间转移间接寻址

2、执行下面指令序列后,结果是(A)。

MOVAL,82H

CBW

A.AX=0FF82HB.AX=8082HC.AX=0082HD.AX=0F82H

3、8088/8086存储器分段,每个段不超过(D)。

A.64K个字B.32K个字节C.1兆个字节D.64K个字节

4、CPU发出的访问存储器的地址是(A)。

A.物理地址B.偏移地址C.逻辑地址D.段地址

5、BUFDW10HDUP(3DUP(2,10H),3,5)

上述语句汇编后,为变量BUF分配的存储单元字节数是(B)。

A.80HB.100HC.124D.192

6、若AX=-15要得到AX=15应执行的指令是(A)。

A.NEGAXB.NOTAX

C.INCAXD.DECAX

7、8086/8088系统执行传送指令MOV时(A)。

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

8、MOVAL,79

ADDAL,0B1H

上面指令执行后,设置的标志位CF和OF的值是(D)。

A.CF=0,OF=1B.CF=1,OF=1C.CF=0,OF=1D.CF=1,OF=0

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

A.MOVAL,BUFB.MOVAL,BUF

JSK1ANDAL,11

SHRAL,1JNZK2

JNCK1MOVAL,0

MOVAL,0K2:……

K1:

C.MOVAL,BUFD.MOVAL,BUF

TESTAL,81HJNPK4

JNZK3TESTAL,80H

MOVAL,0JNZK4

K3:MOVAL,0

K4:

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

A.MOVAL,42HB.ADDAL,BLC.SUB[BX],DID.INC[DI]

11、与MOVBX,OFFSETVAR指令完全等效的指令是(D)。

A.MOVBX,VARB.LDSBX,VAR

2

C.LESBX,VARD.LEABX,VAR

12、下列指令执行后对源和目的操作数均无影响的是(D)。

A.MOV[BX+2],AXB.SUBAX,2467H

C.SBB[SI],BXD.CMPAX,BX

13、表示过程定义结束的伪指令是(A)。

A.ENDPB.ENDSC.ENDD.ENDM

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

(D)。

A.CMPB.SUBC.ANDD.MOV

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

A.0302HB.0203HC.0202HD.0303H

16、BUF1DB3DUP(0,2DUP(1,2),3)

COUNTEQU$-BUF1

符号COUNT等价的值是(B)。

A.6B.18C.16D.8

17、DA1DW2A05H

DA2DB0FAH



MOVAL,BYTEPTRDA1

SUBDA2,AL

上述指令执行后,DA2中的内容是(C)。

A.0DAHB.0FAHC.0F5HD.0D0H

18、为在一连续的存储单元中依次存放数据41H,42H,…,48H,下面的数据定义语句中

有语法错误的是(B)。

A.DB41H,42H,43H,44H,45H,46H,47H,48H

B.DW4142H,4344H,4546H,4748H

C.DB‘ABCDEFGH''

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

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

A.0036HB.0022HC.0030HD.0020H

20、条件转移指令JNBE产生转移的条件是(A)。

A.CF=0ANDZF=0B.CF=0ANDZF=1

C.CF=1ANDZF=0D.CF=1ANDZF=1

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

A.ALB.BLC.CHD.DX

22、在程序运行过程中,确定下一条指令的物理地址的计算表达式是(C)。

A.DS16+SIB.ES16+DIC.CS16+IPD.SS16+SP

23、物理地址(10FF0H)=10H,(10FF1H)=20H,(10FF2H)=30H,从地址10FF1H

中取一个字的内容是(B)。

A.1020HB.3020HC.2030HD.2010H

24、将AX清零,下列指令错误的是(C)。

A.SUBAX,AXB.XORAX,AXC.ORAX,00HD.ANDAX,00H

25、下列指令中,影响或修改标志位的是(D)。

A.LOOPZB.JNLEC.PUSHFD.POPF

3

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

A.85B92HB.86192HC.BB690HD.12169H

27、通用数据传送指令中,错误的是(D)。

A.累加器到存储器B.立即数到存储器C.寄存器到存储器D.存储器到存储器

28、移位指令中,应先将移位次数放在(D)。

A.AXB.ALC.CXD.CL

29、MOVAL,79

ADDAL,0B1H

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

A.CF=0OF=1B.CF=1OF=1C.CF=0OF=0D.CF=1OF=0

30下列语句中能实现留空8个字节单元的语句是(D)。

A.DA1DT?B.DA2DW?,?

C.DA3DD?D.DA4DQ?

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

A.CX=0,且ZF=0B.CX=0,或ZF=1C.CX10,且ZF=0D.CX10,或ZF=1

32、设DL=55H,执行指令后能使DL中的数据为0AAH的指令是(D)。

A.TESTDL,0AAHB.ORDL,0AAH

C.NEGDLD.XORDL,0FFH

33、完成同指令XCHGAX,BX相同功能的指令或指令序列是(D)。

A.MOVAX,BXB.MOVBX,AX

C.PUSHAXD.MOVCX,AX

POPBXMOVAX,BX

MOVBX,CX

34、JMPBX的目标地址的偏移量为(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,DXB.DS,ES,CS,SS

C.SP,BP,IP,BXD.SI,DI,BP,BX

39、用一条指令仅实现将BX+SI=>AX的方法是(D)。

A.XCHGAX,[BX][SI]B.MOVAX,[BX+SI]

C.LEAAX,BX[SI]D.LEAAX,[BX][SI]

40、设SP初值为2000H,执行指令“PUSHAX”后,SP的值是(D)。

A.1FFFHB.1998HC.2002HD.1FFEH

41、条件转移指令JB产生程序转移的条件是(A)。

A.CF=1B.CF=0C.CF=1和ZF=1D.CF=1和ZF=0

4

42、选用串操作指令时,错误的操作是(D)。

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

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

43、设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1。执行SBBAL,[SI]

后,正确的结果是(C)。

A.AL=5FHSF=1CF=1B.AL=60HSF=1CF=0

C.AL=5FHSF=0CF=1D.AL=60HSF=0CF=0

44、设AX=1000H

NEGAX

NOTAX

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

A.AX=1001HB.AX=0FFFHC.AX=1000HD.AX=0111H

45、CBW指令的功能是(B)。

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

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

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

名字是(A)。

A.VariableB.First&ldC.0FFFFHD.‘Memphis’

47、ORG0030H

DA1DB0,‘0’,30H

DWDA1

数据为3000H字存储单元的偏移地址是(A)。

A.0030HB.0031HC.0032HD.0033H

48、NUM1DB(12OR6AND2)GE0EH

NUM2DB(12XOR6AND2)LE0EH

上述数据定义语句中,NUM1和NUM2字节单元的内容分别是(D)。

A.NUM1=0,NUM2=0B.NUM1=0,NUM2=0FFH

C.NUM1=0FFH,NUM2=0D.NUM1=0FFH,NUM2=0FFH

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

用的语句是(A)。

A.DA1DB‘AB’B.DA1DW‘AB’C.DA1DB0ABHD.DA1DW0ABH

50、DA1EQUBYTEPTRDA2

DA2DW0ABCDH



SHLDA1,1

SHRDA2,1

上述指令序列执行后,DA2字存储单元的内容是(C)。

A.0ABCDHB.0AB9AHC.55CDHD.559AH

51、下面语句中有语法错误的语句是(C)。

A.DB45HB.DWOABCDHC.DW‘ABCD’D.DD‘AB’

52、MOVCL,8

ROLAX,CL

ORAX,BX

假设AX=0012H,BX=0034H,那么上述程序段执行后,AX中的结果是(A)。

5

A.1234HB.3412HC.0046HD.0034H

53、执行下列指令序列后,正确的结果是(A)。

MOVAL,81H

ADDAL,AL

ADCAL,AL

A.AL=05HB.AL=204HC.AL=04HD.AL=205H

54、DA2DB12H,34H,56H,0ABH

DB$-DA2

BUF1DB10H,20H,30H



LEASI,DA2

MOVCL,4[SI]

MOVCH,LENGTHBUF1

上述指令序列运行后,CX的内容是(D)。

A.03ABHB.01ABHC.0304HD.0104H

55、在汇编语言程序中,对END语句的叙述正确的是(C)。

A.END语句是一可执行语句B.END语句表示程序执行到此结束

C.END语句表示源程序到此结束D.END语句在汇编后要产生机器码

56、十六进制数88H,可表示成下面几种形式,请找出错误的表示(D)。

A.无符号十进制数136B.带符号十进制数-120

C.压缩型BCD码十进制数88D.8位二进制数-8的补码表示

57、指令指针寄存器是(A)。

A.IPB.SPC.BPD.PSW

58、当执行指令ADDAX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下

面的叙述正确的是(D)。

A.表示结果中含1的个数为偶数B.表示结果中含1的个数为奇数

C.表示该数为偶数D.表示结果中低八位含1的个数为偶数

59、完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是(A)。

A.MOVAL,00HB.ANDAL,00HC.XORAL,ALD.SUBAL,AL

60、下列指令执行后总是使CF=0,OF=0的是(A)。

A.ANDB.NEGC.NOTD.INC

61、完成同指令XCHGAX,BX相同功能的指令或指令序列是()。

A.MOVAX,BXB.MOVBX,AX

C.PUSHAXD.MOVCX,AX

POPBXMOVAX,BX

MOVBX,CX

62、设AH=0,AL=06H,BL=09H,执行指令

ADDAL,BL

AAA

之后,其结果应是()。

A.AH=01,AL=05B.AH=1,AL=15

C.AH=0,AL=0FHD.AH=0,AL=05

63、设AL=0B4H,BL=11H,指令“MULBL”和指令“IMULBL”分别执行后OF,CF

的值为()。

6

A.OF=1,CF=0B.OF=1,CF=1

C.OF=0,CF=0D.OF=0,CF=1

64、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()。

A.CX=0且ZF=0B.CX=0且ZF=1

C.CX=0或ZF=0D.CX=0或ZF=1

65、下面指令中,合理而有意义的指令是()。

A.REPLODSBB.REPSCASBC.REPCMPSBD.REPMOVSB

66、在汇编语言程序中,对END语句的叙述正确的是()。

A.END语句是一可执行语句B.END语句表示程序执行到此结束

C.END语句表示源程序到此结束D.END语句在汇编后要产生机器码

67、下面的数据传送指令中,错误的操作是()。

A.MOVSS:[BX+DI],1000HB.MOVDX,1000H

C.MOVWORDPTR[BX],1000HD.MOVDS,2000H

68、下面指令执行后,变量DAB中的内容是()。

DAWDW2A05H

DABDB0FAH

:

MOVAL,BYTEPRTDAW

SUBDAB,AL

A.0DAHB.0FAHC.0F5HD.0D0H

69、执行下列指令后,正确的结果是()。

MOVAL,100

MOVBL,-2

A.AL=100HB.AL=64HC.AL=64HD.AL=100H

BL=02HBL=0FEHBL=82HBL=0FEH

70、设数据段中已有:

DA1DB12H,34H

DA2DW56H,78H

下面有语法错误的语句是()。

A.ADR1DWDA1B.MOVDA1+1,AX

C.MOVBYTEPTRDA2+1,ALD.MOVWORDPTRDA1+1,AX

71、实现将DX:AX中存放的32位数扩大四倍,正确的程序段是()。

A.SHLAX,2B.RCLAX,2C.MOVCX,2D.SHLAX,1

ROLDX,2SHLDX,2LOP:SHLAX,1SHLAX,1

RCLDX,1RCLDX,1

LOOPLOPRCLDX,1

72、TA1DW0102H,0304H,0506H

TA2DB02H,03H,04H

:

MOVBX,DS:[0006H]

ANDBX,0FFH

ANDBH,[BX]

上述指令序列运行后,BX的内容是()。

A.0605HB.0402HC.0606HD.0204H

7

73、当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是()。

A.JLEB.JNLC.JNLED.JL

74、下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应

为()。

TESTBH,01H

K1

A.JNEB.JZC.JSD.JC

75、测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法

是()。

A.TESTBL,4FHB.XORBL,4FHC.ANDBL,4FHD.ORBL,4FH

JZNEXTJZNEXTJZNEXTJZNEXT

76、用DEBUG调试汇编语言程序时,显示某指令的地址是2F80:F400,此时段寄存器CS

的值是()。

A.F400HB.2F80HC.F4000HD.2F800H

77、设DS=1100H,(12000H)=80H,(12001H)=20H,(12002H)=30H,执行MOVAX,

[1000H]则AX=()。

A.8000HB.0080HC.2080HD.8020H

78、下列四条指令中错误的是()。

A.MOVAX,[SI]B.MOVAX,[DI]

C.MOVAX,[SI+DI]D.MOVAX,[SI-DI]

79、下列四条指令执行后不影响标志位的是()。

A.JNCNEXTB.CMPAX,BXC.SHLAX,1D.ORAL,AL

80、已知AX=0001H,下列四条指令执行后,不能使ZF=1的语句是()。

A.DECAXB.SUBAX,1C.ANDAX,1D.CMPAX,1

81、在8086/8088系统中,约定用于形成堆栈段数据物理地址的寄存器有()。

A.SS,SP,BPB.SS,SP,BX

C.DS,BX,BPD.DS,SP,BP

82、有指令MOVAX,1234H,指令中的立即数1234H是存储在()。

A.数据段B.代码段C.附加段D.堆栈段

83、要在程序中定义缓冲区BUF,保留9个字节存储空间的语句是()。

A.BUFDW9B.BUFDB9

C.BUFDB9DUP(?)D.BUFDW9DUP(?)

84、已知AL=56H,BL=34H,都是压缩BCD码,要执行二数相加,正确的指令是()。

A.ADDAL,BLB.ADCAL,BLC.ADDBL,ALD.ADCBL,AL

DAADAADAADAA

85、在执行子程序段内调用CALLSUBR指令后,SP的值()。

A.加1B.减1C.加2D.减2

86、完成将AX清零,并且使CF清零,下面错误的指令是()。

A.SUBAX,AXB.ANDAX,0C.XORAX,AXD.MOVAX,0

87、定义宏指令的伪指令是()。

A.PROC和ENDPB.CODE和ENDSC.EQU和ENDD.MACRO和ENDM

88、在汇编语言源程序中,表达式的计算是由()完成的。

A.编程者B.汇编程序C.程序执行时D.连接程序

89、为了使执行串操作指令时,地址按减量方式处理应使用指令()。

8

A.CLIB.STIC.CLDD.STD

90、有数据定义NUMDB''12345'',经汇编后,NUM占有()字节存储单元。

A.1B.5C.6D.7

91、汇编语言源程序每个语句可以由四项组成,如语句要完成一定功能,那么该语句中

不可省略的项是()。

A.名字项B.操作项C.操作数项D.注释项

92、在堆栈段中,存放栈顶地址的寄存器是()。

A.IPB.SPC.BXD.BP

93、汇编语言程序中,反映指令操作结果的标志是()。

A.状态标志B.控制标志C.ZFD.DF

94、书写汇编语言程序时规定,对字母开头的十六进制数,其前面必须加()。

A.0B.DC.BD.H

95、计算机中用来存储程序、数据等信息的记忆装置是()。

A.控制器B.运算器C.CPUD.存储器

96、MOV[SI][BX],AL,该指令中目的操作数采用的寻址方式是()。

A.基址加变址B.寄存器C.寄存器间接D.寄存器相对

97、MULWORDPTR[SI]指令中的乘积是存放在()、AX中。

A.CXB.BXC.DXD.SI

98、汇编语言中,存放下一条将要执行的指令地址寄存器是()。

A.SPB.AXC.DID.IP

99、在计算机中,以先进后出方式工作的存储空间是()。

A.存储器B.RAMC.ROMD.堆栈

100、TESTAH,30H指令的功能与()指令功能相类似。

A.ANDB.CMPC.SUBD.OR

101、在存储器中留60个字的空单元的伪指令是()。

A.ARRAYEQU60B.ARRAYDW60

C.ARRAYDB60DUP(?)D.ARRAYDW60DUP(?)

102、指令JMPFARPTRDONE属于()。

A.段内转移直接寻址B.段内转移间接寻址

C.段间转移直接寻址D.段间转移间接寻址

103、下列叙述正确的是()。

A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令

B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令

C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令

D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令

104、一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末

一个字单元的物理地址是()。

A.12CSBHB.12B6BHC.12C59HD.12BFEH

105、在下列指令的表示中,不正确的是()。

A.MOVAL,[BX+SI]B.JMPSHORTDONI

C.DEC[BX]D.MULCL

106、在进行二重循环程序设计时,下列描述正确的是()。

A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内

B.外循环初值应置外循环之内;内循环初值应置内循环之内

9

C.内、外循环初值都应置外循环之外

D.内、外循环初值都应置内循环之外,外循环之内

107、条件转移指令JNE的测试条件为()。

A.ZF=0B.CF=0C.ZF=1D.CF=1

108、8086CPU在基址加变址的寻址方式中,变址寄存器可以为()。

A.BX或CXB.CX或SIC.DX或SID.SI或DI

109、已知BX=2000H,SI=1234H,则指令MOVAX,[BX+SI+2]的源操作在()中。

A.数据段中偏移量为3236H的字节B.附加段中偏移量为3234H的字节

C.数据段中偏移量为3234H的字节D.附加段中偏移量为3236H的字节

110、执行如下程序:

MOVAX,0

MOVBX,1

MOVCX,100

A:ADDAX,BX

INCBX

LOOPA

HLT

执行后(BX)=()。

A.99B.100C.101D.102

111、上题的程序执行后(AX)=()。

A.5000B.5050C.5100D.5150

112、对于下列程序段:

AGAIN:MOVAL,[SI]

MOVES:[DI],AL

INCSI

INCDI

LOOPAGAIN

也可用()指令完成同样的功能。

A.REPMOVSBB.REPLODSBC.REPSTOSBD.REPESCASB

113、下面指令序列执行后完成的运算,正确的算术表达式应是()。

MOVAL,BYTEPTRX

SHLAL,1

DECAL

MOVBYTEPTRY,AL

A.Y=X2+1B.X=Y2+1C.X=Y2-1D.Y=X2-1

114、在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来()。

A.占内存空间小,但速度慢B.占内存空间大,但速度快

C.占内存空间相同,速度快D.占内存空间相同,速度慢

115、在程序执行过程中,IP寄存器中始终保存的是()。

A.上一条指令的首地址B.下一条指令的首地址

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

116、PSW寄存器中共有()位条件状态位,有()位控制状态位。

A.6、3B.3、6C.8、4D.4、8

117、下列指令执行时出错的是()。

10

A.ADDBUF1,BUF2B.JMPDWORDPTRDAT[BX]

C.MOVAX,[BX+DI]NUMD.TESTAL,08H

118、已知(AX)=1234H,执行下述三条指令后,(AX)=()。

MOVBX,AX

NEGBX

ADDAX,BX

A.1234HB.0EDCCHC.6DCCHD.0000H

119、在下列指令中,()指令的执行会影响条件码中的CF位。

A.JMPNEXTB.JCNEXTC.INCBXD.SHLAX,1

120、.串指令中的目的操作数地址是由()提供。

A.SS:[BP]B.DS:[SI]C.ES:[DI]D.CS:[IP]

121、将DX的内容除以2,正确的指令是()。

A.DIV2B.DIVDX,2C.SARDX,1D.SHLDX,1

122、设DS=8225H,DI=3942H,指令NEGBYTEPTR[DI]操作数的物理地址是()。

A、85B92HB、86192HC、BB690HD、12169H

123、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是()。

A、AX,BX,CX,DXB、BX,BP,SI,DI

C、SP,IP,BP,DXD、CS,DS,ES,SS

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

A、CX=0,且ZF=0B、CX=0,或ZF=1

C、CX≠0,且ZF=0D、CX≠0,或ZF=1

125、对寄存器AX的内容乘以4的正确指令序列是()。

A、SHRAX,1SHRAX,1B、SHLAX,1SHL,AX,1

C、ROLAX,1ROLAX,1D、RCRAX,1RCRAX,1

126、保存字除法商的寄存器是()。

A、AXB、AHC、ALD、通用寄存器

127、设DH=10H,执行NEGDH指令后,正确的结果是()。

A、DH=10HCF=1B、DH=0F0HCF=0

C、DH=10HCF=0D、DH=0F0HCF=1

128、下列传送指令中有语法错误的是()。

A、MOVCS,AXB、MOVDS,AX

C、MOVSS,AXD、MOVES,AX

129、下面指令执行后,改变AL寄存器内容的指令是()。

A、TESTAL,02HB、ORAL,AL

C、CMPAL,BLD、ANDAL,BL

130、一条指令中目的操作数不允许使用的寻址方式是()

A.寄存器寻址B.立即数寻址C.变址寻址D.寄存器间接寻址

131、执行下面指令序列后,结果是()。

MOVAL,82H

CBW

A、AX=0FF82HB、AX=8082HC、AX=0082HD、AX=0F82H

132、与MOVBX,OFFSETVAR指令完全等效的指令是()。

A、MOVBX,VARB、LDSBX,VAR

C、LESBX,VARD、LEABX,VAR

11

133、.STACK伪指令定义的默认堆栈段大小是()。

A、1KBB、2KBC、3KBD、4KB

134、MOVSP,3210H

PUSHAX

执行上述指令序列后,SP寄存器的值是()。

A、3211HB、320EHC、320FHD、3212H

135、BUFDW10HDUP(3DUP(2,10H),3,5)

上述语句汇编后,为变量BUF分配的存储单元字节数是()。

A、80HB、100HC、124D、192

136、在汇编语言程序的开发过程中使用宏功能的顺序是()。

A、宏定义,宏调用B、宏定义,宏展开

C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用

137、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不

可省略的项是()。

A、名字项B、操作码项C、操作数项D、注释项

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

()。

A、CMPB、SUBC、ANDD、MOV

139、为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是()。

A、INCCXB、SUBCX,0FFFFH

JZMINUSJZMINUS

C、ANDCX,0FFFFHD、XORCX,0FFFFH

JZMINUSJZMINUS

140、设ES=3000H,DI=00FFH,CX=0005H,AL=41H,DF=0,从300FFH开始的连续5

个字节单元内容分别是44H,43H,42H,41H,41H。执行REPNZSCASB指令后,正确

的结果是()

A、DI=0104H,CX=0000HB、DI=0103H,CX=0001H

C、DI=0102H,CX=0002HD、DI=0101H,CX=0003H

141、与LEABX,ARRAY功能相同的指令是()

A、MOVBX,ARRAYB、MOVBX,SEGARRAY

C、MOVBX,OFFSETARRAYD、LDSBX,ARRAY

142、汇编程序的错误提示:EXAM.ASM(10):Error(9),SymbolnotdefinedBUFF中第

一个圆括号内的“10”的含义是()

A、出错行的行号B、错误类型号

C、警告性错误的个数D、严重错误的个数

143、在汇编语言程序的开发过程中使用宏功能的顺序是()。

A、宏定义,宏调用B、宏定义,宏展开

C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用

144、设A=186,B=273Q,C=0BBH,它们之间的关系是()。

A.A>B>CB.A
145、8086的存储器组织是将存储器划分为段,可作为段的起始地址是()。

A.185A2HB.00020HC.01004HD.0AB568H

146、堆栈中当前出栈的存储单元地址是()。

A.SS10H+SPB.SS10H+BPC.SS10+SPD.SS10+BP

12

147、设DL=55H,执行指令后能使DL中的数据为0AAH的指令是()。

A.TESTDL,0AAHB.ORDL,0AAH

C.NEGDLD.XORDL,0FFH

148、当SS=9876H,SP=4328H,执行POPF指令后,堆栈顶部的物理地址是()。

A.9CA8AHB.9CA90HC.9CA86HD.0DB00H

149、DW10HDUP(2DUP(3),300H)

上述定义的数据单元中,能构成0303H字存储单元的个数是()。

A.10HB.20HC.1EHD.0FH

150、用一条指令实现将寄存器BX和SI的内容相加,结果并送入AX中,这条指令是()。

A.ADDAX,[BX][SI]B.MOVAX,[BX][ST]

C.ANDAX,[BX][SI]D.LEAAX,[BX][SI]

151、设AX中有一带符号数8520H,执行SARAX,1指令后,AX中的值是()。

A.4290HB.0A40HC.0C290HD.0C260H

152、下列中指令执行后,能影响标志位的指令是()。

A.PUSHFB.POPFC.JNLEOPRD.LOOPZLOP

153、循环控制指令LOOPNZ继续执行循环的条件是()。

A.CX≠0且ZF=1B.CX≠0且ZF=0

C.CX≠0或ZF=1D.CX≠0或ZF=0

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

VAR1DW32H

VAR2EQU32H



MOVAX,VAR1

MOVBX,VAR2

A.都是立即数寻址B.前一条指令是立即数寻址,后一条指令是直接寻址

C.前一条指令是直接寻址,后一条指令是立即数寻址D.都是直接寻址

155、ARRAYDW6,9,$+4,10H,1,$+4



MOVAX,ARRAY+4

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

A.0009B.008CHC.0090HD.0010H

156、设AX=0CCBBH,CF=1

ANDAX,7FFEH

RCRAX,1

上述两条指令执行后,AX和CF中的内容分别是()。

A.AX=265DH,CF=0B.AX=265DH,CF=1

C.AX=A65DH,CF=0D.AX=A65DH,CF=1

157、DA_BEQUBYTEPTRDA_W

DA_WDW‘AB'',‘CD'',‘EF’,‘GH''



MOVBX,DA_W+3

MOVBH,DA_B+3

执行上述两条指令后,BX中的内容是()。

A.‘EF''B.‘FC''C.‘CC''D.‘FF''

13

158、指令语句中标号的错误定义是()

A.在代码段中的名字项定义,后面紧跟冒号B.用EQU伪指令定义

C.用LABEL伪指令定义D.由“JMP标号”指令定义

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

A.VAR1-VAR2B.VAR2-VAR1[BX]

C.VAR1+VAR2D.VAR1[BX]

160、为在一连续的存储单元中依次存放数据41H,42H,…,48H,下面的数据定义语句中

有语法错误的是()。

A.DB41H,42H,43H,44H,45H,46H,47H,48H

B.DW4142H,4344H,4546H,4748H

C.DB‘ABCDEFGH''

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

161、设NUM=11011011B,指令“MOVAH,NUMSHL3”执行后AX中的值是()。

A.11011011000BB.11011000BC.00011011BD.00011011011B

162、XORAX,AX

MOVCX,5

NEXT:ADDAL,6

AAA

LOOPNEXT

上述程序段执行的结果是()。

A.AX=0030HB.AX=0300HC.AX=30D.AX=001EH

163、如某循环程序是对两个数组进行某种运算处理,当数组处理完毕或运算处理的结果不

为某一指定值时(每次循环时,对运算结果已进行了测试),就结束循环。如要求一定使用

循环控制指令,这时应选用的指令是()。

A.LOOPB.JMPC.LOOPNE/LOOPNZD.JCXZ

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

A.12FAHB.1305FHC.130FFHD.015FH

165、IP指令指针寄存器是属于()。

A.通用寄存器B.段寄存器C.变址寄存器D.控制寄存器

166、下面有语法错误的指令是()。

A.ADDAL,AHB.ADD[BX+3],AL

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

167、完成对DX的有符号数除以2的指令是()。

A.IDIV2B.SARDX,1C.RORDX,1D.RCRDX,1

168、使进位位置1的指令是()。

A.CLCB.CMCC.STCD.NOP

169、设AL=-15,要使AL=15应执行的指令是()。

A.NEGALB.NOTALC.INCALD.DECAL

170、在条件转移指令中,结果为负数则转移的指令是()。

A.JNSB.JXC.JSD.JP

171、下面的XCHG指令中,语法正确的是()。

A.XCHGAL,DSB.XCHGBL,[BX]

C.XCHGAL,0FHD.XCHGBUF1,BUF2

172、一条指令中目的操作数不允许使用的寻址方式是()。

14

A.寄存器寻址B.立即数寻址C.变址寻址D.寄存器间接寻址

173、设SP=1FFEH,执行下列指令后,SP寄存器的值是()。

POPF

PUSHAX

A..2000HB.2002HC.1FFCHD.1FFEH

174、LDSSI,ES:[2000H]指令的全部功能是()。

A.把地址2000H送SI

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

C.把地址2000H字单元内容送SI,把2002H字单元内容送DS

D.把地址2000H字单元内容送DS,把2002H字单元内容送SI

175、设AL=04H,BL=0F8H,执行MULBL指令后,结果是()。

A.AX=0032HB.AX=00E0HC.AX=03E0HD.AX=0FFE0H

176、设ES=3000H,DI=00FFH,CX=0005H,AL=41H,DF=0,从300FFH开始的连续5

个字节单元内容分别是44H,43H,42H,41H,41H。执行REPNZSCASB指令后,正确

的结果是()。

A.DI=0104H,CX=0000HB.DI=0103H,CX=0001H

C.DI=0102H,CX=0002HD.DI=0101H,CX=0003H

176、某数据段如下:

DATASEGMENT

ORG20H

XDB12H

YDW789AH

DATAENDS

Y单元的偏移地址是()。

A.0B.20HC.21HD.12H

177、下面指令语句中,语法正确的是()。

A.INC[BX]B.CMP[BX],60

C.JMPFAROPRD.MOVWORDPTR[BX],5

178、DATASEGMENT

DA1DB32DUP(?)

DA2DW1456H,789AH

DA3DWDA2

DATAENDS



MOVBX,DA3

上述指令执行后,BX中的内容是()。

A.20HB.31C.32HD.21H

179、已定义数据段

DATASEGMENT

ORG0213H

DA1DB15H,34H,55H

ADRDWDA1

DATAENDS

能使AX中数据为偶数的语句是()。

15

A.MOVAX,WORDPTRDA1B.MOVAL,DA1+2

C.MOVAL,BYTEPTRADR+1D.MOVAX,WORDPTRDA1+2

180、如代数据段名为DATA_SEG,它的起始地址为20A00H,对数据段寄存器DS赋值段

地址值的方法是()。

A.MOVDS,20A0HB.ASSUMEDS:DATA_SEG

C.DATA_SEGSEGMENTD.MOVAX,DATA_SEG

MOVDS,AX

181、OVAL,-1

NEGAL

XORAL,65

上述程序段执行后,AL中的内容是()。

A.40HB.64HC.01HD.61H

182、用CMP指令对两个无符号数进行A-B的比较后,如A=B或A>B,则分别产生转移,

这种情况应选择的条件转移指令是()。

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

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

C.上述两条条件转移指令(JE和JNC)无先后次序

D.用上述两个条件转移指令不能完成上述功能要求

二、填空题

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

地址是________。

2.“SHLOPR,CNT”指令中OPR可以是除______以外的任何寻址方式。

3.“VARDB5DUP(8,2DUP(5))”语句汇编应分配______个字节单元。

4.指令“MOVAX,20H[SI]”中源操作数的物理地址表达式是______。

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

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

_______到_______。

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

3.汇编语言源程序中的语句有三种类型,它们是_______语句,_______语句和_______语句。

4.指令MOVAX,[BX+SI+10H]源操作数寻址方式是_______。

5.执行段间返回指令RET时,将栈顶的一个字弹出到_______后,又弹出一个字到_______

寄存器中。

6.已知DS=3000H,DI=1200H,(31200H)=64H,(31201H)=93H,执行NEGWORDPTR

[DI]后,(31200H)=_______,(31201H)=_______。

7.执行下列指令序列

MOVAL,80H

MOVBL,08H

CBW

IDIVBL

则AH=_______AL=_______。

8.已知数据定义语句

ORG120H

VECT1DW200H

16

VECT2DWVECT1

执行MOVAX,VECT1AX=_______

MOVBX,VECT2BX=_______。



三、简答题

1、在指令系统中,段内、段间返回均为RET指令。试回答:

(1)执行段内返回RET指令时,执行的操作是:

(2)执行段间返回RET指令时,执行的操作是:

2、用两种办法,分别只用一条指令实现将DA1数据区中数据个数送入CX。

DA1DB20HDUP(?)

DA2DW10H,45H,7856H

3、已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,

试分别指出下列各指令中存储器操作数的物理地址。

MOVAL,[BP+20H]的物理地址是:

MOV[BX+DI-80H],AL的物理地址是:

MOVBL,ES:[SI+40H]的物理地址是:

4、请指出下列指令错误原因:

A.ORAX,[CX]

B.ADD[SI],[BX][DI]

C.JMPBYTEPTRLOOPS

D.SARAX,4

E.RCLDX

5、DS=2000H,AX=2000H,BX=5030H,(25030H)=03H,(25031H)=05H,那么执

行下列语句,A.MOVAX,BXAX=;B.MOVAX,[BX]AX=

6、数据定义如下

X1DB10H,100,-1

X2DW10H,100,-1

X3DD?

COUNTEQUX3-X1

变量COUNT的值是,其表示的意义是。

7、ADW1234H

BDW5678H



PUSHA

PUSHB

POPA

POPB

试回答:上述程序段执行后(A)=;(B)=。

8、设某数据段:

DATASEGMENT

ORG20H

NUM1=8

NUM2=NUM1+10H

17

DA1DB''COMPUTER''

DB0AH,0DH

COUNTEQU$-DA1

DA2DW''CO'',''MP'',''UT'',''ER''

DATAENDS

试回答:

(1)DA1的偏移地址是:()

(2)COUNT的值是:()

(3)DA2+5字节单元的内容是:()

9、下列程序段完成什么工作?

DAT1DB30DUP(?)

DAT2DB10DUP(?)



MOVCX,10

MOVBX,20

MOVSI,0

MOVDI,0

NEXT:MOVAL,DAT1[BX][SI]

MOVDAT2[DI],AL

INCSI

INCDI

LOOPNEXT

10、下列语句在存储器中分别为变量数据区分配多少个字节单元?

(1)VAR3DD10

(2)VAR4DW4DUP(?),2

11、设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,(232F7H)=3280H.下

列指令分别执行后,IP的值各是多少?

(1)JMPBXIP=___________________

(2)JMPTABLE[BX]IP=___________________

12、选用NOT,AND,ORXOR逻辑指令编写一指令序列,实现将AL第0位,第2位同

时置1,其他位变反。

13、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要

恢复这四个寄存器信息。例如:

PUSHAX

PUSHBX

PUSHCX

PUSHDX

:

恢复现场

试写出恢复现场时的指令序列。

14、完成下列操作,选用什么指令:

(1)将AX的内容,减去0520H,和上次运算的借位;

(2)将变量名TABL的段地址送AX;

15、D1DB20HDUP(?)

18

D2DWD1

请写出用一条指令实现取D1的偏移地址送给SI中的三种方法。

16、在8086/8088系统中,存储器是分段组织的,按各段实际长度定位。已知(DS)=2150H,

(CS)=2640H,(SS)=2250H,SP=100H,问题:

(1)数据段起始地址是多少?

(2)计算数据段中最多可以存放多少个字节数据?(要有具体计算式)

(3)代码段最多可以存放多少个字节程序代码?说明理由。

17、已知数据段定义如下:

DATASEGMENT

ORG100H

BUFDW''CD'',1,3DUP(4,2DUP(8,6))

VRADB4AH

DATAENDS

单独执行下列语句

LEABX,BUFBX=_______

MOVCX,VRA-BUFCX=_______(用十六进制数表示)。

18、分别说明下列两组指令中两条指令操作的相同点和不同点

(1)SUBAX,BXCMPAX,BX

(2)ANDCX,DXTESTCX,DX

19、下列每组指令中的两条指令有否区别?若有,请说出它们的不同点。

A.MOVAX,OFFSETTABLELEAAX,TABLE

B.JMPSHORTL1JMPNEARPTRL1

C.MOVAX,[BX]MOVAX,BX

D.SUBDX,CXCMPDX,CX

E.MOV[BP][DI],ALMOVDS:[BP][DI],AL

20、系统功能调用的方法如何?举例说明。

21、编程序,使:

A.CL寄存器内容取反

B.BX寄存器的低四位置1

C.AX寄存器的低四位清0

D.CX寄存器的低四位变反

E.用TEST指令测试DL寄存器的第3位和第6位是否为零。

22、指令ANDAX,OPR1ANDOPR2中,OPR1和OPR2是两个已赋值的变量,问两个AND

操作有什么区别?

23、假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后,

DX中的值。

(1)SHRDX,1

(2)RCRDL,1

(3)RCLDX,CL

24、写出完成下述功能的程序段:

(1)传送25H到AL寄存器

(2)将AL的内容乘以2

(3)传送15H到BL寄存器

(4)AL的内容乘以BL的内容

19

并请写出最后(AX)=?

25、写一程序段,求双字长数DX∶BX的相反数。

26、在指令系统中,段内、段间返回均为RET指令。试回答:

(1)执行段内返回RET指令时,执行的操作是:

(2)执行段间返回RET指令时,执行的操作是:

27、ARYDW10DUP(?)



MOVAL,TYPEARY

MOVBL,LENGTHARY

MOVCL,SIZEARY

上述MOV指令序列执行后的结果是什么?

28、设某数据段:

DATASEGMENT

ORG20H

NUM1=8

NUM2=NUM1+10H

DA1DB''COMPUTER''

DB0AH,0DH

COUNTEQU$-DA1

DA2DW''CO'',''MP'',''UT'',''ER''

DATAENDS

试回答:(1)DA1的偏移地址是:___________________。

(2)COUNT的值是:___________________。

(3)DA2+5字节单元的内容是:___________________。

29、设DS=3A00H,ES=4A00H,在段地址:偏移地址=4A00H:9000H字单元中有数据3C50H。

请用一条指令将数据3C50H装入AX寄存器。(不得使用立即数)

30、设BX=0FFFFH,DI=20H,DS=2000H,CL=8,(20020H)=4567H,下列各条指令分

别执行后BX中的内容各为多少?

A.ROLBX,CL;BX=______

B.MOVBX,[DI];BX=______

31、DAT1DB1,2,3,4

DAT2DW3412H,5678H



MOVAX,DAT1+1;将DAT1+1字单元内容送入AX中

MOVBL,DAT2+1;将DAT2+1字节单元内容送入BL中

已知上述两条MOV语句有语法错误,请根据注释字段的要求将其改正(分别用一条语句改

正)。

32、DA1DB20HDUP(?)

DA2DW10H,45H,7856H

请用两种办法,分别只用一条指令实现将DA1数据区中数据个数送入CX。

33、用三种不同方法实现在字存储单元DB1中存储2000H。

34、已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,

试分别指出下列各指令中存储器操作数的物理地址。

MOVAL,[BP+20H]的物理地址是。

20

MOV[BX+DI-80H],AL的物理地址是。

MOVBL,ES:[SI+40H]的物理地址是。

四、程序分析题

1、XORAL,AL

MOVAH,AL

ADDAH,9

JZNEXT

XCHGAH,AL

JMPK1

NEXT:MOVAH,0FFH

K1:……

上述程序运行后,AH=,AL=。

2、XORAL,AL

INCAL

NEGAL

INCAL

MOVBL,7FH

ADCAL,BL

上述程序段运行后,AL=,CF=。

3、已知AX=1234H

MOVBX,AX

NEGBX

ADDAX,BX

执行上述三条指令后,AX=,BX=。

4、BUF1DB41H,42H,43H,44H,45H,46H

BUF2DB6DUP(?)



MOVSI,OFFSETBUF1

MOVDI,OFFSETBUF2

MOVCX,6

LOP:MOVAL,[SI]

SUBAL,7

ANDAL,0FH

MOV[DI],AL

INCSI

INCDI

LOOPLOP

试回答(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么?

(2)在程序功能不变的情况下,ANDAL,0FH指令可否用SUBAL,30H指令替代。

5、BUFFDB‘ABD$QC%$A……CYZ’

CONTEQU$-BUFF



CLD

21

LEADI,BUFF

MOVCX,CONT

MOVAL,’$’

XORDX,DX

NEXT:REPNZSCASB

CMPCX,0

JZK1

INCDX

JMPNEXT

K1:…

上述程序段运行后,DX中的值表示的意义是什么?

6、DA1DW1F28H

DA2DB?



XORBL,BL

MOVAX,DA1

LOP:ANDAX,AX

JZKK

SHLAX,1

JNCLOP

ADDBL,1

JMPLOP

KK:MOVDA2,BL

试问:A.程序段执行后,DA2字节单元内容是什么?

B.在程序段功能不变情况下,是否可用SHR指令代替SHL指令?

7、DA1DB87H

DA2DB



MOVAH,0

MOVAL,DA1

MOVCL,4

SHRAL,CL

MOVDL,10

MULDL

MOVBL,DA1

ANDBL,0FH

ADDAL,BL

MOVDA2,AL

试回答:A.程序段执行后,(DA2)=______;

B.在程序段功能不变的情况下,是否可以用指令SAR替代指令SHR?

8、MOVAL,BL

NOTAL

XORAL,BL

ORBL,AL

22

程序段执行后,AL=______,BL=______。

9、STC

MOVCX,0403H

MOVAX,0A433H

SARAX,CL

XCHGCH,CL

SHLAX,CL

程序段执行后,AX=______,CF=______。

10、BYTE1DBXX;任意数

BYATE2EQU0FEH



MOVDL,BYTE1

ORDL,BYTE2

程序段执行后,DL=______或______。

11、DA_BDB0CH,9,8,0FH,0EH,0AH,2,3,7,4



XORAX,AX

XORCL,CL

XORBX,BX

LOP:TESTDA_B[BX],01H

JENEXT

ADDAL,DA_B[BX]

INCAH

NEXT:INCBX

INCCL

CMPCL,10

JNELOP

上述程序段运行结束后,AH=______,AL=______。如果把“JENEXT指令改为“JNENEXT“指

令,那么AH=______,AL=______。

12、VAR_BDB10DUP(3,5,7,9)



LEABX,VAR_B

MOVCX,10

XORAX,AX

LOP:ADDAL,[BX]

CMPAL,10

JBNEXT

INCAH

SUBAL,10

NEXT:INCBX

LOOPLOP

上述程序段运行结束后,AH=______,AL=______。

13、已知AX=0FF60H,CF=1

MOVDX,96

23

XORDH,0FFH

SBBAX,DX

执行上述指令序列后,AX=___________________,CF=___________________。

14、设寄存器AL,BL,CL中内容均为76H,

XORAL,0FH

ANDBL,0FH

ORCL,0FH

执行上述指令序列后,AL=___________________。

BL=___________________,CL=___________________。

15、已知AX=0A33AH,DX=0F0F0H

ANDAH,DL

XORAL,DH

NEGAH

NOTAL

执行上述指令序列后,AH=___________________,AL=___________________。

16、DATASEGMENT

S9DB0,1,2,3,4,5,6,7,8,9

DATAENDS



LEASI,S9

LEA,DI,S9+1

MOVCX,5

LOP:MOVAL,[SI]

XCHGAL,[DI]

MOV[SI],AL

ADDSI,2

ADDDI,2

LOOPLOP

上述程序段运行后,S9开始的10个字节存储单元内容是什么?

17、.MODESMALL

.DATA

DATA1DW2000H

DATA2DW3000H

.CODE

.STARTUP

LEASI,DATA1

MOVDI,OFFSETDATA2

MOVBX,[SI]

MOVCX,[DI]

MOV[SI],CX

MOV[DI],BX

.EXIT

END

上述程序段运行后,(DATA1)=_________________,(DATA2)=_________________。

24

18、DA3EQUWORDPTRDA4

DA4DB0ABH,89H



SHRDA3,1

MOVDX,DA3

SHLDA4,1

MOVCX,DA4

上述程序段运行后,CX=___________________,DX=___________________。

19、现有如下程序段:

DATASEGMENT

ORG0020H

DA1DW12H,23H

DA2DB11H,21H

DA3EQU1234H

DA4EQU$-DA2

DA5DB31H,32H

DATAENDS

请回答:(1)该程序段已占有的存储字节数是多少?

(2)符号名DA4的值是多少?符号名DA5的值是多少?

20、执行下列程序段后,回答问题。

ORG1221H

NUMDW12H



MOVAX,NUM

MOVBX,OFFSETNUM

MOVCL,BYTEPTRNUM+1

MOVCH,TYPENUM

HLT

请问:(AX)=______,(BX)=______,(CX)=______。

21、阅读如下程序:

ADRRDBXXH,XXH,……,XXH

NUMEQU$-ADRR

RETTDB?



MOVCX,NUM

MOVBX,-1

DON:INCBX

CMPADRR[BX],0

LOOPZDON

JNZNEXT

MOVBL,0FFH

NEXT:MOVRETT,BL

HLT

请问:(1)该程序完成的功能是什么?

25

(2)程序执行后指出RETT字节单元中的内容是什么?

22、现有一子程序:

SUB1PROC

TESTBL,80H

JEPLUS

TESTAL,80H

JNEEXITO

JMPXCHANGE

PLUS:TESTBL,80H

JEEXITO

XCHANGE:XCHGAL,BL

EXITO:RET

SUB1ENDP

试回答:(1)子程序的功能是什么?

(2)若调用子程序前AL=9AH,BL=77H,返回主程序时,AL=______,BL=______。

23、阅读程序段:

BLOCKDB20H,1FH,08H,81H,0FFH,…

RESULTDB?



START:LEASI,BLOCK

MOVCX,[SI]

INCSI

MOVAL,[SI]

LOP1:CMPAL,[SI+1]

JNGNEXT

MOVAL,[SI+1]

NEXT:INCSI

LOOPLOP1

MOVRESULT,AL

HLT

请问:(1)该程序完成的功能是什么?

(2)该程序循环的次数是多少?

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

ORG100H

BLOKDWX1,X2,…,XN

COUNTEQU($-BLOLOK)/2

RESULTDWCOUNT,?

LEABX,BLOK-2

MOVCX,RESULT

XORAX,AX

GOON:ADDBX,2

CMPAX,[BX]

JAENEXT

MOVAX,[BX]

26

NEXT:LOOPGOON

MOVRESULT+2,AX

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

RESULT+2字存储单元的内容=______;BX=______;程序循环次数=______

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

FLDBDB?

TAB1DW20DUP(?)

TAB2DB’ABCD’

A.MOVAX,TYPEFLDB

B.MOVAX,TYPETAB1

C.MOVCX,LENGTHTAB1

D.MOVDX,SIZETAB1

E.MOVCX,LENGTHTAB2

26、下面程序段执行完后,AL的内容是什么?

MOVAL,10

ADDAL,AL

SHLAL,1

MOVBL,AL

SHLAL,1

ADDAL,BL

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

SALAX,1

RCLDX,1

28、假设X和X+2单元的内容为双精度数P,Y和Y+2单元的内容为双精度数Q(X和Y

为低位字),试说明下列程序段做什么工作?

MOVDX,X+2

MOVAX,X

ADDAX,X

ADCDX,X+2

CMPDX,Y+2

JLL2

JGL1

CMPAX,Y

JBEL2

L1:MOVAX,1

JMPSHORTEXIT

L2:MOVAX,2

EXIT:INT20H

29、MOVAX,9090H

SUBAX,4AE0H

JCL1

JOL2

JMPL3

上述程序执行后AX=_______,程序转向_______

27

30、假设寄存器AX=1234H,DX=0A000H

MOVBX,0

MOVCX,BX

SUBCX,AX

SBBBX,DX

MOVAX,CX

MOVDX,BX

上述程序段执行后AX=_______,DX=_______

程序功能是_______

31、BUFDB45H,68H,7AH,35H,39H



MOVDI,OFFSETBUF

MOVCX,5

MOVAL,‘a''

CLD

REPSTOSB

该程序段执行后,BUF中的内容是_______,方向标志DF=_______

32、假设寄存器AX=5AH,CX=23H



MOVDL,0

LOP:SUBAX,CX

JCNEXT

INCDL

JMPSHORTLOP

NEXT:ADDAX,CX

HLT

上述程序段执行后,AX=_______,DL=_______

用数学表达式指明程序功能:_______

33、ADW1234H

BDW5678H

:

PUSHA

PUSHB

POPA

POPB

试回答:A.上述程序段执行后(A)=,(B)=。

B.设执行前SP=2000H,执行后SP=。

34、现有下列程序段:

MOVAX,6540H

MOVDX,3210H

MOVCL,04

SHLDX,CL

MOVBL,AH

SHLAX,CL

28

SHRBL,CL

ORDL,BL

试问上述程序段运行后,

(AX)=,(BL)=,(DX)=。

35、分析下面程序段,

MOVAL,200

SARAL,1

MOVBL,AL

MOVCL,2

SARAL,CL

ADDAL,BL

试问程序段执行后(BL)=,(AL)=。

36、程序段如下:

BLK1DB46,84,34,-5,20,122,73

:

MOVCX,7

LEAS1,BLK1

NEXT:MOVAL,[SI]

INCSI

TESTAL,81H

LOOPZNEXT

MOVBL,[SI]

:

请回答程序段运行后:(AL)=,(BL)=。

37、STRINGDB‘ABCDEFGHI’

:

MOVAH,01;从键盘输入字符1~9

INT21H

ANDAL,0FH

DECAL

XORAH,AH

MOVBX,OFFSETSTRING

ADDBX,AX

MOVBL,[BX]

MOVAH,02H;显示输出

INT21H

:

试回答:(1)上述程序段的功能是什么?

(2)如从键盘输入字符‘4’,程序段有什么结果?

38、ANDAL,AL

JZBRCH1

RCRAL,1

JZBRCH2

RCLAL,1

29

INCAL

JZBRCH3

:

上述程序运行后,试回答:

(1)当(AL)=时,程序转向BRCH1

(2)当(AL)=时,程序转向BRCH2

(3)当(AL)=时,程序转向BRCH3

39、MOVAX,0BC5FH

MOVBX,0C0FBH

XORAX,BX

XORAX,BX

上述程序段运行后,AX=___________,CF=_____________

40、HEXDB‘0123456789ABCDEF’

HCODDB?,?



MOVBX,OFFSETHEX

MOVAL,1AH

MOVAH,AL

ANDAL,0FH

XLATHEX

MOVHCOD[1],AL

MOVCL,12

SHRAX,CL

XLATHEXMOVHCOD,AL

上述程序段运行后,HCOD和HCOD+1两字节单元内容是什么?

41、DATASEGMENT

ORG3040H

YY1DB30H,40H

YY2DW3040H

DATAENDS



MOVBX,OFFSETYY1

MOVAX,[BX]

MOVCL,BYTEPTRYY2+1

MOVCH,TYPEYY2

上述程序段运行后,AX=___________,BX=____________,CX=___________

42、ADB0F8H

BDB3DUP(?)



LEADI,B

MOVCX,3

MOVAL,ALOP:SARAL,1

MOV[DI],AL

INCDI

30

LOOPLOP

上述程序段运行后,从B单元开始依次存放的数据的多少?

43、已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么?

MOVCX,10

LEABX,BUF

K2:MOVAL,[BX]

CMPAL,‘Z’

JBEK1

SUBAL,20H

MOV[BX],AL

K1:INCBX

LOOPK2



44、MOVCL,8

MOVAL,0

NOTAL

ROLAL,CL

CMPAL,0FFH

JZNEXT

MOVAL,0

NEXT:……

上述程序段运行后,(AL)=___________,CF=___________

45、已知AX=1234H

MOVBX,AX

NEGBX

ADDAX,BX

执行上述三条指令后,AX=BX=。

46、程序段完成什么功能?

MOVCL,04

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

47、BUF1DB41H,42H,43H,44H,45H,46H

BUF2DB6DUP(?)



MOVSI,OFFSETBUF1

MOVDI,OFFSETBUF2

MOVCX,6

LOP:MOVAL,[SI]

SUBAL,7

ANDAL,0FH

MOV[DI],AL

31

INCSI

INCDI

LOOPLOP

试回答(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么?

48、DATASEGMENT

S9DB0,1,2,3,4,5,6,7,8,9

DATAENDS

……

LEASI,S9

LEA,DI,S9+1

MOVCX,5

LOP:MOVAL,[SI]

XCHGAL,[DI]

MOV[SI],AL

ADDSI,2

ADDDI,2

LOOPLOP

上述程序段运行后,S9开始的10个字节存储单元内容是什么?

五、程序填空题

1、下面程序段的功能是把DA1数据区的数0-9转换为对应的ASCII码,并存入ASCI数据

区。试完善本程序段。

DA1DB00H,01H,02H,03H,04H,05H,06H,07H,08H,09H

ASCIDB10DUP(?)

CUNT=ASCI-DA1

……

LEASI,DA1

LEADI,ASCI



LOP1:MOVAL,[SI]



MOV[DI],AL

INCSI

INCDI

LOOPLOP1

2、设A,B是长度为10的字节数组,用串操作指令编写程序实现A,B两数组内容的相互

交换。试完善本程序。

DATASEGMENT

ADB1,2,3,4,5,6,7,8,9,0AH

ORG0010H

BDB0AH,9,8,7,6,5,4,3,2,1

DATAENDS

LEASI,A

LEADI,B

32

MOVCX,10

LOP:LODSB

XCHGAL,[DI]



DECDI

STOSB



INCDI

LOOPLOP

3、某程序段欲用单个字符显示的2号DOS功能调用去显示一字符串“STRING”。试在下面

空白处填上适当的指令(每一空白处仅填一条指令)。

STR1DB‘STRING’



MOVCX,6

MOVBX,OFFSETSTR1

LOP:MOVDL,[BX]

MOVAH,02H

INT21H

A.______

B.______

JNELOP

4、程序段的功能是依次产生0~9的10个ASCII码,并存入BUF1数据区,请在空白处填

上指令(每一空白处仅填一条指令)。

BUF1DB10DUP(?)



LEABX,BUF1

MOVCX,10

XORAL,AL

LOP:MOVAH,AL

ADDAL,30H

A.______

INCBX

B.______

INCAL

LOOPLOP

5、下面程序段是判断寄存器AH和AL中第3位是相同,如果相同,AH置0,否则AH置

全1。试把空白处填上适当指令。

_____________________

ANDAH,08H

_____________________

MOVAH,OFFH

JMPNEXT

ZERO:MOVAH,0

NEXT:……

33

6、以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大

数并送入MAX单元中。

BUFDB5,6,7,58H,62,45H,127,……

COUNTEQU$-BUF;COUNT等于变量BUF的字节数

MAXDB?



MOVBX,OFFSETBUF

MOVCX,COUNT-1

MOVAL,[BX]

LOP1:INCBX

_____________________

JAENEXT

MOVAL,[BX]

NEXT:DECCX

_____________________

MOVMAX,AL

7、在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄

存器中。如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。请在程序中的空格

处填入适当指令使其完整。

LEABX,TABLE

MOVCX,10

MOVSUM,AX

NEXT:(1)

ADCAH,0

JNCDON

JCENDO

(2)

DON:INCBX

(3)

ENDO:HLT



8、BEG为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排

放这100个字节数据。请在程序中的空格处填入适当的指令使其完整。

MOVCX,32H

LEASI,BEG

MOVDI,SI

(1)

DON:MOVAL,[SI]

(2)

MOV[SI],AL

(3)

DECDI

LOOPDON

HLT

34

9、下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出)

FLDDW10,-20,30,-60,-71,80,79,56

_______

MOVCX,8

XORAX,AX

R1:_______

ADDSI,2

LOOPR1

MOVCL,8

IDIVCL

HLT

10、已知数据段DAT单元存放某一数N(-6≦N≦6)下面的程序段用查表法求数N的平方

值,结果送SQR单元,请将程序填写完整。

TABLEDB0,1,4,9,16,25

DATDBN

SQRDB?

LEABX,TABLE

MOVAL,DAT

_______

JGENEXT

_______

NEXT:XLAT

HLT

11、设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中

存放,请将程序中所缺指令语句补上。

TESTAX,8000H



MOVPLW,BX

JMPDONE

K1:

DONE:

12、现有下列数据段:

DATASEGMENT

STR1DB‘ABCDEFGHIJKL’

COUNTEQU$-STR1

BUFDBCOUNTDUP(0)

DATAENDS

下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送

到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空

缺的指令填上。

MOVSI,OFFSETBUF-1

MOVDI,OFFSETBUF

MOVCX,COUNT



35

LOOP:MOVSB



LOOPLOP

13、DA1数据区中有50个字节数据,下面程序段将每个数据的低四位变反,高四位不变,

并依次存入DA2数据区中。请将程序补充完整。

MOVCX,50

LEASI,DA1

LEADI,DA2

K1:MOVAL,[SI]

___________

MOV[DI],AL

INCSI

INCDI

DECCX

___________

14、下面程序段完成将存储单元A1中一个压缩型BCD码拆成二个非压缩型BCD码,高位

BCD码存放在A3单元,低位BCD码存放在A2单元,再分别转换为对应的ASCⅡ码。请

将程序补充完整。

MOVAL,A1

MOVCL,4

___________

ORAL,30H

MOVA3,AL

MOVAL,A1

___________

ORAL,30H

MOVA2,AL

15、下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置

全1。试把空白处填上适当指令。

_____________________

ANDAH,08H

_____________________

MOVAH,OFFH

JMPNEXT

ZERO:MOVAH,0

NEXT:……

16、程序段的功能是依次产生0~9的10个ASCII码,并存入BUF1数据区,请在空白处

填上指令(每一空白处仅填一条指令)。

BUF1DB10DUP(?)

……

LEABX,BUF1

MOVCX,10

XORAL,AL

LOP:MOVAH,AL

36

ADDAL,30H

____________

INCBX

____________

INCAL

LOOPLOP

17、下面程序执行后,AL的内容为ARRAY数组中的最小数,请在空白处各填上一条指令。

ARRAYDB3,5,-3,-2,4,5,-8,6

……

MOVCX,7

MOVDI,0

MOVAL,ARRAY

A1:INCDI



JLEA2

MOVAL,ARRAY[DI]



18、下面程序段的功能是把DA1数据区的数0-9转换为对应的ASCII码,并存入ASCI数据

区。试完善本程序段。

DA1DB00H,01H,02H,03H,04H,05H,06H,07H,08H,09H

ASCIDB10DUP(?)

CUNT=ASCI-DA1

……

LEASI,DA1

LEADI,ASCI



LOP1:MOVAL,[SI]



MOV[DI],AL

INCSI

INCDI

LOOPLOP1

六、编制程序题

1、设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关程序功能的

指令):

Y=X当X>=0

Y=0当X<0

2、A1单元开始定义了一长度为N的字符串,找出其中所有的小写字母并存放到以A2单元

开始的存储区中。统计出小写字母的个数,存放到SL单元中。请编一完整的源程序。

3、已知DAT1字节单元有一个数据,试编制一程序段将该数据的低4位变为1010B,最高

位(第7位)置1,其余3位不变,结果送DAT2字节单元。

4、在N1和N2两数据区中,分别有10H个带符号数。试编制一源程序,找出对应项中较

小的数据,并将这些较小的数据存入N3数据区中(要求:对应项比较时必须用CMPS指令)。

37

DATASEGMENT

N1DB××,××,××,……

N2DB××,××,××,……

N3DB10HDUP(0)

DATAENDS

5、加密移动字符串,设缓冲区SBUFF中有20个小写字母a,将每个a加上它相对于缓冲

区的位移量后传送到缓冲区DBUFF。

6、在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,

求它们对应项的和,并将和数存入以SUM为首址的数据区中。

DATASEGMENT

BUF1DW-56,24,54,-1,89,-8,……

BUF2DW45,-23,124,345,-265,……

SUMDW10DUP(0)

DATAENDS

7、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

8、设在内存单元SQTAB首址开始存放了0~15的平方数表。要求用直接查表法编一程序,

求出A单元中给定数(<=15=的平方值送B单元保存。

9、已知存储器中有一个首地址为ARRAY的100个字数组,现要求把数组中的每个数加1

(不考虑溢出的可能性),试编制完成此功能的程序段。

10、.编写一段程序,如果字节变量TESTONE和TESTTWO相等,则调用子程序,显示‘#’;

否则调用NOTSAME子程序,显示‘!’。

11、已定义了两个整数变量A和B,试编写程序完成下列功能:

A.若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中。

B.若两个数均为奇数,则将两数均加1后存回原变量。

C.若两个数均为偶数,则两个变量均不改变。

(要求各段定义完整,并画出程序流程图)

12、假设DATAX和DATAX+2单元存放双字P,DATAY和DATAY+2单元中存放双字Q,

编程计算2P-Q,差在DX,AX中。若OF=1,程序转OVERFLOW,否则转NOOVER。(只

写与试题要求有关的指令语句)

13、已知在数据区BUF1和BUF2分别存放20个字节数据。编程检查两数据区中的数据是

否相同。若完全一致,则将标志单元FLAG置FFH,否则置0,并将第一次出现的不同数据

的地址分别存放在ADDR1和ADDR2单元中。

要求:源程序格式完整。

14、设X、Y、Z、W为十六位有符号数编程计算:

W←(X+YZ)/8-Y除法余数丢弃

若ZF=1,程序转EQ;否则转NOT_EQ。

15、已知在以ARRAY为首地址的数据区中存放10个带符号字数据:

ARRAYDW1,2,-1,3,4,-2,-3,4,5,-6

编程将ARRAY分成两个数组:正数数组P_ARY和负数数组N_ARY,并分别显示正数项

个数和负数项个数。

要求:源程序格式完整。

16、X,Y,Z三个字节存储单元中各有一个无符号数,其中有两个数据相等,找出不相等

的哪个数,并存入W单元中,试编写完成上述功能的程序段(只编写有关代码部分,勿需

书写源程序格式)。

38

17、在数据段偏移量为100H开始的存储空间内连续存放着10个字节型无符号二进制数,

编写一段程序,求出该10个数之和,并将结果存放在寄存器AX中。

18、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

2.已知有256个字节整数A1、A2、A3、……、A256存放在以NUMBER为首址的数据区

中,编写一完整源程序将其中的负数去除后剩下的正数重新排序存放在以PLUS开始的数据

区中。

19、在数据段中有一个首地址为array的未排序的50D字节的正整数数组,请编写一程序,

找出其中的最大数和最小数及最大数和最小数的个数。

20、A1单元开始定义了一长度为N的字符串,找出其中所有的小写字母并存放到以A2单

元开始的存储区中。统计出小写字母的个数,存放到SL单元中。请编一完整的源程序。数

据段如下:

DATASEGMENT

A1DB‘……’

NEQU$-A1

A2DBNDUP(?)

SLDB?

DATAENDS





参考教程:

南开大学汇编语言15讲

中山大学汇编语言教程51讲

哈工大汇编语言程序设计视频教程51讲

石油大学汇编语言51讲李村合主讲

吉林大学汇编语言程序设计51讲王鉴泉主讲

东南大学汇编语言34讲

献花(0)
+1
(本文系大学专业课...首藏)