汇编常考试题(含有详解)
更新时间:2023-03-12 03:18:01 阅读量: 教育文库 文档下载
- 汇编试题与答案推荐度:
- 相关推荐
图书馆《汇编语言程序设计》模拟试题
一、单项选择题
1、指令JMP FAR PTR DONE属于( )。
A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻 D.段间转移间接寻址 2、执行下面指令序列后,结果是( )。 MOV AL,82H CBW
A. AX=0FF82H B. AX=8082H C. AX=0082H D. AX=0F82H 3、8088/8086存储器分段,每个段不超过( )。
A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4、CPU发出的访问存储器的地址是( )。 A.物理地址 B.偏移地址 C.逻辑地址 D.段地址 5、BUF DW 10H DUP(3 DUP(2,10H),3,5)
上述语句汇编后,为变量BUF分配的存储单元字节数是( )。 A.80H B.100H C.124 D.192
DW后面的10H化为10进制为16,然后2*16*(3*(1+1)+1+1)=256个字节,转化为16进制数后就是100H
6、若AX= - 15要得到AX=15应执行的指令是( )。
A.NEG AX B.NOT AX C.INC AX D.DEC AX 7、8086/8088系统执行传送指令MOV时( )。
A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 8、 MOV AL,79
ADD AL,0B1H
上面指令执行后,设置的标志位CF和OF的值是( )。
A.CF=0,OF=1 B.CF=1,OF=1 C.CF=0,OF=1 D.CF=1,OF=0 79实际上转换为16进制为4FH 之后二者相加
9、检查BUF的内容是否为正偶数,如是正偶数,则AL=0。下面程序段正确的是( )。
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:
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、下列指令中操作数在代码段中的是( )。
1
A.MOV AL,42H B.ADD AL,BL C.SUB [BX],DI D.INC [DI]
立即数通常是占用代码段的空间
11、与MOV BX,OFFSET VAR指令完全等效的指令是( )。
A.MOV BX,VAR B.LDS BX,VAR C.LES BX,VAR D.LEA BX,VAR
12、下列指令执行后对源和目的操作数均无影响的是( )。
A.MOV [BX+2],AX B.SUB AX,2467H C.SBB [SI],BX D.CMP AX,BX 13、表示过程定义结束的伪指令是( )。
A.ENDP B.ENDS C.END D.ENDM 14、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( )。
A.CMP B.SUB C.AND D.MOV 15、上面指令执行后,AX的内容是( ) 。
A.0302H B.0203H C.0202H D.0303H 16、BUF1 DB 3 DUP(0,2 DUP(1,2),3)
COUNT EQU $ - BUF1
符号COUNT等价的值是( )。
A.6 B.18 C.16 D.8 17、DA1 DW 2A05H
DA2 DB 0FAH ?
MOV AL,BYTE PTR DA1 SUB DA2,AL
上述指令执行后,DA2中的内容是( ) 。
A.0DAH B.0FAH C.0F5H D.0D0H
18、为在一连续的存储单元中依次存放数据41H,42H,?,48H,下面的数据定义语句中有语法错误的是( )。
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的内容是( )。
A.0036H B.0022H C.0030H D.0020H
近返回还是远返回执行的操作不同 如果是近返回: SP=SP+2+m
如果是远返回:
SP=SP+4+m 注意此时为16进制 满16进一
20、条件转移指令JNBE产生转移的条件是( )。
A. CF=0 AND ZF=0 B. CF=0 AND ZF=1 C. CF=1 AND ZF=0 D. CF=1 AND ZF=1
JNBE(或JA)(Jump if not below or equal,or above) 不低于或等于,或者高于则转移 格式:JNBE(或JA) OPR 测试条件:CF V ZF=0
2
21、下列寄存器中, 作为16位寄存器的是 ( )。 A. AL B. BL C. CH D.DX
22、在程序运行过程中, 确定下一条指令的物理地址的计算表达式是 ( )。 A.DS*16+SI B. ES*16+DI C. CS*16+IP D. SS*16+SP 23、物理地址(10FF0H )=10H,(10FF1H )=20H,(10FF2H )=30H,从地址10FF1H中取一个字的内容是 ( )。
A.1020H B.3020H C.2030H D.2010H 24、将AX 清零, 下列指令错误的是( )。
A.SUB AX,AX B.XOR AX,AX C.OR AX,00H D.AND AX,00H 25、下列指令中, 影响或修改标志位的是 ( )。
A.LOOPZ B.JNLE C.PUSHF D.POPF
26、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( )。
A.85B92H B.86192H C.BB690H D.12169H
物理地址=段地址*10H+有效地址,这里的段地址是DS=8225H,有效地址是DI=3942H 所以:物理地址=8225H*10H+3942H=85B92H 27、通用数据传送指令中, 错误的是 ( )。
A.累加器到存储器 B.立即数到存储器 C.寄存器到存储器 D.存储器到存储器 28、移位指令中, 应先将移位次数放在 ( )。
A.AX B. AL C. CX D.CL 29、MOV AL, 79 ADD AL, 0B1H
上述指令执行后, CF和OF的值是 ( )。
A.CF=0 OF=1 B.CF=1 OF=1 C.CF=0 OF=0 D.CF=1 OF=0 30下列语句中能实现留空8个字节单元的语句是( )。
A. DA1 DT ? B. DA2 DW ?,? C. DA3 DD ? D. DA4 DQ ? 31、循环指令LOOPNZ终止循环的条件是( )。
A.CX=0,且ZF=0 B.CX=0,或ZF=1 C.CX10,且ZF=0 D.CX10,或ZF=1 LOOPNZ 将CX内容减一,若CX不等于0,且标志位ZF=0时,才循环至目标地址处;否则顺序执行后续指令。
32、设DL=55H,执行指令后能使DL中的数据为0AAH的指令是( )。
A.TEST DL, 0AAH B.OR DL, 0AAH C.NEG DL D.XOR DL, 0FFH
33、完成同指令XCHG AX,BX相同功能的指令或指令序列是( )。
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. BX 的内容 B. BX 所指向的内存单元的内容 C. IP + BX 的内容 D. IP + [BX]
35、在程序执行过程中,IP寄存器中始终保存的是( )。
A.上一条指令的首地址 B.下一条指令的首地址
C.正在执行指令的首地址 D.需计算有效地址后才能确定地址
3
36、用户为了解决自己的问题,用汇编语言所编写的程序,称为( )。 A.目标程序 B.源程序 C.可执行程序 D.汇编程序
37、某系列微机对存储器的分段,如果每一个段最多的字存储单元(16位二进制)是32K,那么表示段内字节单元偏移地址的二进制位数应是( )。 A.20位 B.16位 C.15位 D.12位
38、可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是( )。 A.AX,BX,CX,DX B.DS,ES,CS,SS C.SP,BP,IP,BX D.SI,DI,BP,BX 39、用一条指令仅实现将BX+SI=>AX的方法是( )。 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的值是( )。 A.1FFFH B.1998H C.2002H D.1FFEH 41、条件转移指令JB产生程序转移的条件是( )。
A.CF=1 B.CF=0 C.CF=1和ZF=1 D.CF=1和ZF=0 42、选用串操作指令时,错误的操作是( )。
A.置方向标志位 B.根据串操作指令设置重复次数并送入CX C.设置源操作数及目的操作数指针 D.源操作数和目的操作数都可以加段超越 43、设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1。执行SBB AL,[SI]后,正确的结果是( )。
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
执行上述指令后,正确的结果是( )。
A.AX=1001H B.AX=0FFFH C.AX=1000H D.AX=0111H 45、CBW指令的功能是( )。
A.把源操作数的符号位扩展到目的操作数中 B.把AL中的符号位扩展到AH中 C.把AH中的符号位扩展到AL中 D.把AX中的符号位扩展到DX中 46、汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是( )。
A.Variable B.First & ld C.0FFFFH D.‘Memphis’ 47、ORG 0030H DA1 DB 0,‘0’,30H DW DA1
数据为3000H字存储单元的偏移地址是( )。 A.0030H B.0031H C.0032H D.0033H DA1 DB 0,'0',30H 是字节存储 0030H单元存储0
0031H单元存储30H(也就是‘0’) 0032H单元存储30H
而题目问的是:0030H(字)存储单元,所以选择A
4
48、 NUM1 DB(12 OR 6 AND 2)GE 0EH NUM2 DB(12 XOR 6 AND 2)LE 0EH
上述数据定义语句中,NUM1和NUM2字节单元的内容分别是( )。 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.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 SHR DA2,1
上述指令序列执行后,DA2字存储单元的内容是( )。 A.0ABCDH B.0AB9AH C.55CDH D.559AH 51、下面语句中有语法错误的语句是( )。
A.DB 45H B.DW OABCDH C.DW ‘ABCD’(装不下) D.DD ‘AB’ 52、 MOV CL,8 ROL AX,CL OR AX,BX
假设AX=0012H,BX=0034H,那么上述程序段执行后,AX中的结果是( )。 A.1234H B.3412H C.0046H D.0034H 53、执行下列指令序列后,正确的结果是( )。 MOV AL,81H ADD AL,AL ADC AL,AL
A.AL=05H B.AL=204H C.AL=04H D.AL=205H 54、 DA2 DB 12H,34H,56H,0ABH DB $-DA2
BUF1 DB 10H,20H,30H ┇
LEA SI,DA2 MOV CL,4[SI]
MOV CH,LENGTH BUF1
上述指令序列运行后,CX的内容是( )。
A.03ABH B.01ABH C.0304H D.0104H
55、在汇编语言程序中,对END语句的叙述正确的是( )。
A. END语句是一可执行语句 B. END语句表示程序执行到此结束 C. END语句表示源程序到此结束 D. END语句在汇编后要产生机器码 56、十六进制数88H,可表示成下面几种形式,请找出错误的表示( )。
A. 无符号十进制数136 B. 带符号十进制数-120
C. 压缩型BCD码十进制数88 D. 8位二进制数-8的补码表示 57、指令指针寄存器是( )。
A. IP B. SP C. BP D. PSW
5
58、当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是( )。
A. 表示结果中含1的个数为偶数 B. 表示结果中含1的个数为奇数
C. 表示该数为偶数 D. 表示结果中低八位含1的个数为偶数 59、完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是( )。
A. MOV AL,00H B. AND AL,00H C. XOR AL,AL D. SUB AL,AL 60、下列指令执行后总是使CF=0,OF=0的是( )。
A. AND B. NEG C. NOT D. INC
61、完成同指令XCHG AX,BX相同功能的指令或指令序列是( )。
A. MOV AX,BX B. MOV BX,AX C. PUSH AX D. MOV CX,AX POP BX MOV AX,BX
MOV BX,CX
62、设AH=0,AL=06H,BL=09H,执行指令
ADD AL,BL AAA
之后,其结果应是( )。
A.AH=01,AL=05 B. AH=1, AL=15 C. AH=0, AL=0FH D. AH=0,AL=05
63、设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为( )。
A. OF=1,CF=0 B. OF=1,CF=1 C. OF=0,CF=0 D. OF=0,CF=1
64、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是( )。
A. CX=0且ZF=0 B. CX=0且ZF=1 C. CX=0或ZF=0 D. CX=0或ZF=1 65、下面指令中,合理而有意义的指令是( )。
A. REP LODSB B. REP SCASB C. REP CMPSB D. REP MOVSB 66、在汇编语言程序中,对END语句的叙述正确的是( )。
A. END语句是一可执行语句 B. END语句表示程序执行到此结束 C. END语句表示源程序到此结束 D. END语句在汇编后要产生机器码 67、下面的数据传送指令中,错误的操作是( )。
A. MOV SS:[BX+DI],1000H B. MOV DX,1000H
C. MOV WORD PTR[BX],1000H D. MOV DS,2000H (不能用DS目的寄存器) 68、下面指令执行后,变量DAB中的内容是( )。
DAW DW 2A05H DAB DB 0FAH
:
MOV AL,BYTE PRT DAW SUB DAB,AL
A. 0DAH B. 0FAH C. 0F5H D. 0D0H 69、执行下列指令后,正确的结果是( )。
MOV AL,100 MOV BL,-2
6
A. AL=100H B. AL=64H C. AL=64H D. AL=100H
BL=02H BL=0FEH BL=82H BL=0FEH
70、设数据段中已有:
DA1 DB 12H,34H DA2 DW 56H,78H
下面有语法错误的语句是( )。
A. ADR1 DW DA1 B. MOV DA1+1,AX
C. MOV BYTE PTR DA2+1,AL D. MOV WORD PTR DA1+1,AX 71、实现将DX:AX中存放的32位数扩大四倍,正确的程序段是( )。
A. SHL AX,2 B. RCL AX,2 C. MOV CX,2 D. SHL AX,1
ROL DX,2 SHL DX,2 LOP:SHL AX,1 SHL AX,1
RCL DX,1 RCL DX,1 LOOP LOP RCL DX,1
72、TA1 DW 0102H,0304H,0506H
TA2 DB 02H,03H,04H
:
MOV BX,DS:[0006H] AND BX,0FFH AND BH,[BX]
上述指令序列运行后,BX的内容是( )。
A. 0605H B. 0402H C. 0606H D. 0204H
73、当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是( )。
A. JLE B. JNL C. JNLE D. JL
74、下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为( )。
TEST BH,01H K1
A. JNE B. JZ C. JS D. JC
75、测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是( )。
A. TEST BL,4FH B. XOR BL,4FH C. AND BL,4FH D. OR BL,4FH
JZ NEXT JZ NEXT JZ NEXT JZ NEXT 利用异或 相同得0不同为1这种特性 可以用来判断两个数是否相等
76、用DEBUG调试汇编语言程序时,显示某指令的地址是2F80:F400,此时段寄存器CS的值是( )。
A.F400H B.2F80H C.F4000H D.2F800H 77、设DS=1100H,(12000H)=80H,(12001H)=20H,(12002H)=30H,执行MOV AX, [1000H]则AX=( )。
A.8000H B.0080H C.2080H D.8020H 78、下列四条指令中错误的是( )。
A.MOV AX,[SI] B.MOV AX,[DI] C.MOV AX,[SI+DI] D.MOV AX,[SI-DI] 79、下列四条指令执行后不影响标志位的是( )。
A.JNC NEXT B.CMP AX, BX C.SHL AX, 1 D.OR AL, AL
7
80、已知AX=0001H,下列四条指令执行后,不能使ZF=1的语句是( )。
A.DEC AX B.SUB AX, 1 C.AND AX , 1 D.CMP AX,1
81、在8086/8088系统中,约定用于形成堆栈段数据物理地址的寄存器有( )。
A.SS, SP, BP B.SS, SP, BX C.DS, BX, BP D.DS, SP, BP
82、有指令MOV AX, 1234H,指令中的立即数1234H是存储在( )。
A.数据段 B.代码段 C.附加段 D.堆栈段
83、要在程序中定义缓冲区BUF,保留9个字节存储空间的语句是( )。
A.BUF DW 9 B.BUF DB 9
C.BUF DB 9 DUP(?) D.BUF DW 9 DUP(?)
84、已知AL=56H,BL=34H,都是压缩BCD码,要执行二数相加,正确的指令是( )。
A.ADD AL,BL B.ADC AL,BL C.ADD BL,AL D.ADC BL,AL DAA DAA DAA DAA 85、在执行子程序段内调用CALL SUBR指令后,SP的值( )。
A.加1 B.减1 C.加2 D.减2
86、完成将AX清零,并且使CF清零,下面错误的指令是( )。
A.SUB AX, AX B.AND AX, 0 C.XOR AX,AX D.MOV AX,0 87、定义宏指令的伪指令是( )。
A.PROC和ENDP B.CODE和ENDS C.EQU和END D.MACRO和ENDM 88、在汇编语言源程序中,表达式的计算是由( )完成的。
A.编程者 B.汇编程序 C.程序执行时 D.连接程序
89、为了使执行串操作指令时,地址按减量方式处理应使用指令( )。
A.CLI B.STI C.CLD D.STD
90、有数据定义NUM DB '12345' ,经汇编后,NUM占有( )字节存储单元。
A.1 B.5 C.6 D.7
91、汇编语言源程序每个语句可以由四项组成,如语句要完成一定功能,那么该语句中 不可省略的项是( )。
A.名字项 B.操作项 C.操作数项 D.注释项 92、在堆栈段中,存放栈顶地址的寄存器是( )。
A.IP B.SP C.BX D.BP
93、汇编语言程序中,反映指令操作结果的标志是( )。
A.状态标志 B.控制标志 C.ZF D.DF
94、书写汇编语言程序时规定,对字母开头的十六进制数,其前面必须加( )。
A.0 B.D C.B D.H
95、计算机中用来存储程序、数据等信息的记忆装置是( )。
A.控制器 B.运算器 C.CPU D存贮器
96、MOV [SI][BX],AL,该指令中目的操作数采用的寻址方式是( )。
A.基址加变址 B.寄存器 C.寄存器间接 D.寄存器相对 97、MUL WORD PTR[SI]指令中的乘积是存放在( )、AX中。
A.CX B.BX C.DX D.SI
98、汇编语言中,存放下一条将要执行的指令地址寄存器是( )。
A.SP B.AX C.DI D.IP
99、在计算机中,以先进后出方式工作的存储空间是( )。
A.存储器 B.RAM C.ROM D.堆栈
8
100、TEST AH,30H指令的功能与( )指令功能相类似。
A.AND B.CMP C.SUB D.OR 101、在存储器中留60个字的空单元的伪指令是( )。
A.ARRAY EQU 60 B.ARRAY DW 60
C.ARRAY DB 60 DUP(?) D.ARRAY DW 60 DUP(?) 102、指令JMP FAR PTR DONE属于( )。
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.12CSBH B.12B6BH C.12C59H D.12BFEH 105、在下列指令的表示中,不正确的是( )。
A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL
106、在进行二重循环程序设计时,下列描述正确的是( )。
A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外
D.内、外循环初值都应置内循环之外,外循环之内 107、条件转移指令JNE的测试条件为( )。
A.ZF=0 B.CF=0 C.ZF=1 D.CF=1
108、8086CPU在基址加变址的寻址方式中,变址寄存器可以为( )。 A.BX或CX B.CX或SI C.DX或SI D.SI或DI
109、已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在( )中。 A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节 C.数据段中偏移量为3234H的字节 D.附加段中偏移量为3236H的字节 110、执行如下程序:
MOV AX,0 MOV BX,1 MOV CX,100 A: ADD AX,BX INC BX LOOP A HLT
执行后(BX)=( )。
A.99 B.100 C.101 D.102 111、上题的程序执行后(AX)=( )。
A.5000 B.5050 C.5100 D.5150 112、对于下列程序段:
9
AGAIN:MOV AL,[SI]
MOV ES:[DI],AL INC SI INC DI
LOOP AGAIN
也可用( )指令完成同样的功能。
A.REP MOVSB B.REP LODSB C.REP STOSB D.REPE SCASB 113、下面指令序列执行后完成的运算,正确的算术表达式应是( )。 MOV AL,BYTE PTR X SHL AL,1 DEC AL
MOV BYTE PTR Y,AL
A.Y=X*2+1 B.X=Y*2+1 C.X=Y*2-1 D.Y=X*2-1
114、在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来( )。 A.占内存空间小,但速度慢 B.占内存空间大,但速度快 C.占内存空间相同,速度快 D.占内存空间相同,速度慢 115、在程序执行过程中,IP寄存器中始终保存的是( )。 A.上一条指令的首地址 B.下一条指令的首地址
C.正在执行指令的首地址 D.需计算有效地址后才能确定地址 116、PSW寄存器中共有( )位条件状态位,有( )位控制状态位。 A.6、3 B.3、6 C.8、4 D.4、8 117、下列指令执行时出错的是( )。
A.ADD BUF1,BUF2 B.JMP DWORD PTR DAT [BX] C.MOV AX,[BX+DI] NUM D.TEST AL,08H
118、已知(AX)=1234H,执行下述三条指令后,(AX)=( )。 MOV BX,AX NEG BX
ADD AX,BX
A.1234H B.0EDCCH C.6DCCH D.0000H 119、在下列指令中,( )指令的执行会影响条件码中的CF位。
A.JMP NEXT B.JC NEXT C.INC BX D.SHL AX,1 120、.串指令中的目的操作数地址是由( )提供。
A.SS:[BP] B.DS:[SI] C.ES:[DI] D.CS:[IP] 121、将DX的内容除以2,正确的指令是( )。
A.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,1
122、设DS=8225H,DI=3942H,指令NEG BYTE PTR [DI]操作数的物理地址是( )。 A、85B92H B、86192H C、BB690H D、12169H
123、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( )。 A、AX,BX,CX,DX B、BX,BP,SI,DI C、SP,IP,BP,DX D、CS,DS,ES,SS 124、循环指令LOOPNZ终止循环的条件是( )。 A、CX=0,且ZF=0 B、CX=0,或ZF=1 C、CX≠0,且ZF=0 D、CX≠0,或ZF=1
125、对寄存器AX的内容乘以4的正确指令序列是( )。
10
A、SHR AX,1 SHR AX,1 B、SHL AX,1 SHL,AX,1 C、ROL AX,1 ROL AX,1 D、RCR AX,1 RCR AX,1 126、保存字除法商的寄存器是( )。
A、AX B、AH C、AL D、通用寄存器 127、设DH=10H,执行NEG DH指令后,正确的结果是( )。 A、DH=10H CF=1 B、DH=0F0H CF=0 C、DH=10H CF=0 D、DH=0F0H CF=1 128、下列传送指令中有语法错误的是( )。 A、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX
129、下面指令执行后,改变AL寄存器内容的指令是( )。 A、TEST AL,02H B、OR AL,AL C、CMP AL,BL D、AND AL,BL
130、一条指令中目的操作数不允许使用的寻址方式是( )
A. 寄存器寻址 B. 立即数寻址 C.变址寻址 D.寄存器间接寻址 131、执行下面指令序列后,结果是( )。 MOV AL,82H CBW
A、AX=0FF82H B、AX=8082H C、AX=0082H D、AX=0F82H 132、与MOV BX,OFFSET VAR指令完全等效的指令是( )。 A、MOV BX,VAR B、LDS BX,VAR C、LES BX,VAR D、LEA BX,VAR 133、.STACK伪指令定义的默认堆栈段大小是( )。
A、1KB B、2KB C、3KB D、4KB 134、MOV SP,3210H PUSH AX
执行上述指令序列后,SP寄存器的值是( )。
A、3211H B、320EH C、320FH D、3212H 135、BUF DW 10H DUP(3 DUP(2,10H),3,5)
上述语句汇编后,为变量BUF分配的存储单元字节数是( )。 A、80H B、100H C、124 D、192
136、在汇编语言程序的开发过程中使用宏功能的顺序是( )。 A、宏定义,宏调用 B、宏定义,宏展开
C、宏定义,宏调用,宏展开 D、宏定义,宏展开,宏调用
137、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( )。
A、名字项 B、操作码项 C、操作数项 D、注释项
138、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( )。
A、CMP B、SUB C、AND D、MOV
139、为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是( )。
A、INC CX B、SUB CX,0FFFFH
JZ MINUS JZ MINUS
C、AND CX,0FFFFH D、XOR CX,0FFFFH
11
JZ MINUS JZ MINUS
140、设ES=3000H,DI=00FFH,CX=0005H,AL=41H,DF=0,从300FFH开始的连续5个字节单元内容分别是44H,43H,42H,41H,41H。 执行REPNZ SCASB指令后,正确的结果是( )
A、DI=0104H,CX=0000H B、DI=0103H,CX=0001H C、DI=0102H,CX=0002H D、DI=0101H,CX=0003H 141、与LEA BX, ARRAY功能相同的指令是( )
A、MOV BX,ARRAY B、MOV BX, SEG ARRAY C、MOV BX,OFFSET ARRAY D、LDS BX, ARRAY 142、汇编程序的错误提示:EXAM.ASM(10):Error(9),Symbol not defined BUFF中第一个圆括号内的“10”的含义是( )
A、出错行的行号 B、错误类型号 C、警告性错误的个数 D、严重错误的个数 143、在汇编语言程序的开发过程中使用宏功能的顺序是( )。
A、宏定义,宏调用 B、宏定义,宏展开
C、宏定义,宏调用,宏展开 D、宏定义,宏展开,宏调用 144、设A=186,B=273Q,C=0BBH,它们之间的关系是( )。
A.A>B>C B.A
145、8086的存储器组织是将存储器划分为段,可作为段的起始地址是( )。
A.185A2H B.00020H C.01004H D.0AB568H 146、堆栈中当前出栈的存储单元地址是( )。
A.SS*10H+SP B.SS*10H+BP C.SS*10+SP D.SS*10+BP
147、设DL=55H,执行指令后能使DL中的数据为0AAH的指令是( )。
A.TEST DL, 0AAH B.OR DL, 0AAH C.NEG DL D.XOR DL, 0FFH
148、当SS=9876H, SP=4328H,执行POPF指令后,堆栈顶部的物理地址是( )。
A.9CA8AH B.9CA90H C.9CA86H D.0DB00H 149、DW 10H DUP(2 DUP(3),300H)
上述定义的数据单元中,能构成0303H字存储单元的个数是( )。
A.10H B.20H C.1EH D.0FH 150、用一条指令实现将寄存器BX和SI的内容相加,结果并送入AX中,这条指令是( )。
A.ADD AX,[BX][SI] B.MOV AX,[BX][ST] C.AND AX,[BX][SI] D.LEA AX,[BX][SI]
151、设AX中有一带符号数8520H,执行SAR AX,1指令后,AX中的值是( )。
A.4290H B.0A40H C.0C290H D.0C260H 152、下列中指令执行后,能影响标志位的指令是( )。
A.PUSHF B.POPF C.JNLE OPR D.LOOPZ LOP 153、循环控制指令LOOPNZ继续执行循环的条件是( )。
A.CX≠0且ZF=1 B.CX≠0且ZF=0 C.CX≠0或ZF=1 D.CX≠0或ZF=0
154、下面两个传送指令语句中源操作数寻址方式是( )。
VAR1 DW 32H VAR2 EQU 32H ┇
12
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中的内容是( )。
A.0009 B.008CH C.0090H D.0010H 156、设AX=0CCBBH,CF=1
AND AX,7FFEH RCR AX,1
上述两条指令执行后,AX和CF中的内容分别是( )。
A.AX=265DH,CF=0 B.AX=265DH,CF=1 C.AX=A65DH,CF=0 D.AX=A65DH,CF=1 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中的内容是( )。
A.‘EF' B.‘FC' C.‘CC' D.‘FF' 158、指令语句中标号的错误定义是( )
A.在代码段中的名字项定义,后面紧跟冒号 B.用EQU伪指令定义 C.用LABEL伪指令定义 D.由“JMP标号”指令定义 159、设VAR1和VAR2是已定义的变量名,非法的表达式是( )。
A.VAR1-VAR2 B.VAR2-VAR1[BX] C.VAR1+VAR2 D.VAR1[BX]
160、为在一连续的存储单元中依次存放数据41H,42H,…,48H,下面的数据定义语句中有语法错误的是( )。
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中的值是( )。
A.11011011000B B.11011000B C.00011011B D.00011011011B 162、XOR AX,AX
MOV CX,5
NEXT:ADD AL,6 AAA
LOOP NEXT
上述程序段执行的结果是( )。
A.AX=0030H B.AX=0300H C.AX=30 D.AX=001EH
13
163、如某循环程序是对两个数组进行某种运算处理,当数组处理完毕或运算处理的结果不为某一指定值时(每次循环时,对运算结果已进行了测试),就结束循环。如要求一定使用循环控制指令,这时应选用的指令是( )。
A.LOOP B.JMP C.LOOPNE/LOOPNZ D.JCXZ 164、在DEBUG上机调试程序时,存储器地址表示为12FA:015F,它的物理地址是( )。 A. 12FAH B. 1305FH C. 130FFH D. 015FH 165、IP指令指针寄存器是属于( )。
A. 通用寄存器 B. 段寄存器 C. 变址寄存器 D. 控制寄存器 166、下面有语法错误的指令是( )。
A. ADD AL,AH B. ADD [BX+3],AL
C. ADD AH,[DI] D. ADD [BP+2],DA1;(DA1是变量名) 167、完成对DX的有符号数除以2的指令是( )。
A. IDIV 2 B. SAR DX,1 C. ROR DX,1 D. RCR DX,1 168、使进位位置1的指令是( )。
A. CLC B. CMC C. STC D. NOP 169、设AL=-15,要使AL=15应执行的指令是( )。
A. NEG AL B. NOT AL C. INC AL D. DEC AL 170、在条件转移指令中,结果为负数则转移的指令是( )。
A. JNS B. JX C. JS D. JP 171、下面的XCHG指令中,语法正确的是( )。
A. XCHG AL,DS B. XCHG BL,[BX] C. XCHG AL,0FH D. XCHG BUF1,BUF2 172、一条指令中目的操作数不允许使用的寻址方式是( )。
A. 寄存器寻址 B. 立即数寻址 C. 变址寻址 D. 寄存器间接寻址 173、设SP=1FFEH,执行下列指令后,SP寄存器的值是( )。 POPF PUSH AX
A.. 2000H B. 2002H C. 1FFCH D. 1FFEH 174、LDS SI,ES:[2000H]指令的全部功能是( )。 A. 把地址2000H送SI
B. 把地址2000H字单元的内容送SI
C. 把地址2000H字单元内容送SI,把2002H字单元内容送DS D. 把地址2000H字单元内容送DS,把2002H字单元内容送SI
175、设AL=04H,BL=0F8H,执行MUL BL指令后,结果是( )。
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指令后,正确的结果是( )。
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
14
Y DW 789AH
DATA ENDS
Y 单元的偏移地址是( )。
A. 0 B. 20H C. 21H D. 12H 177、下面指令语句中,语法正确的是( )。
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. 20H B. 31 C. 32H D. 21H 179、 已定义数据段
DATA SEGMENT
ORG 0213H
DA1 DB 15H,34H,55H ADR DW DA1
DATA ENDS
能使AX中数据为偶数的语句是( )。
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赋值段地址值的方法是( )。
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. 40H B. 64H C. 01H D. 61H
182、用CMP指令对两个无符号数进行A-B的比较后,如A=B或A>B,则分别产生转移,这种情况应选择的条件转移指令是( )。 A. 先用JE指令,再用JNC指令 B. 先用JNC指令,再用JE指令
C. 上述两条条件转移指令(JE和JNC)无先后次序 D. 用上述两个条件转移指令不能完成上述功能要求 二、填空题
15
1.假设某个字的值是1234H,其低位字节地址是20H,高位字节地址是21H,那么该字的字地址是________。
2.“SHL OPR,CNT”指令中OPR可以是除______以外的任何寻址方式。 3.“VAR DB 5 DUP(8,2 DUP(5))”语句汇编应分配______个字节单元。 4.指令“MOV AX,20H[SI]”中源操作数的物理地址表达式是______。 5.乘法指令语句“MUL CL”,16位的乘积存放在______中。
1.在8086/8088系统中,存储器是分段的,每段最大长度是_______字节,段内偏移地址从_______到_______。
2.在程序调试时,显示某指令存放地址是2340H:0056H,则物理地址是_______。
3.汇编语言源程序中的语句有三种类型,它们是_______语句,_______语句和_______语句。 4.指令MOV AX,[BX+SI+10H]源操作数寻址方式是_______。
5.执行段间返回指令RET时,将栈顶的一个字弹出到_______后,又弹出一个字到_______寄存器中。
6.已知DS=3000H,DI=1200H,(31200H)=64H,(31201H)=93H,执行NEG WORD PTR[DI]后,(31200H)=_______,(31201H)=_______。 7.执行下列指令序列 MOV AL,80H MOV BL,08H CBW IDIV BL
则AH=_______AL=_______。 8.已知数据定义语句 ORG 120H
VECT1 DW 200H VECT2 DW VECT1
执行 MOV AX,VECT1 AX=_______ MOV BX,VECT2 BX=_______。 三、简答题
1、在指令系统中,段内、段间返回均为RET指令。试回答: (1)执行段内返回RET指令时,执行的操作是:
(IP)←((SP),(SP)+1)
(2)执行段间返回RET指令时,执行的操作是:
(IP)←((SP),(SP)+1) (CS) ←((SP)+2,(SP)+3)
2、用两种办法,分别只用一条指令实现将DA1数据区中数据个数送入CX。
DA1 DB 20H DUP(?) DA2 DW 10H,45H,7856H
(1) MOV CX ,LENGTH DAT1 (2) MOV CX,DAT2-DAT1
3、已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数的物理地址。
MOV AL,[BP+20H]的*物理地址是 : 12488H MOV [BX+DI-80H],AL的物理地址是:232D7H MOV BL,ES:[SI+40H]的物理地址是:31040H
16
4、请指出下列指令错误原因:
A. OR AX,[CX] CX不能做间址寄存器
B. ADD [SI],[BX][DI]源操作数和目的操作数不能同时为存储器操作数 C. JMP BYTE PTR LOOPS 标号没有BYTE 属性 D. SAR AX,4 循环次数大于1时应先至于CL中 E. RCL DX 没有指定移位次数
5、DS=2000H, AX=2000H, BX=5030H, (25030H)=03H,(25031H)=05H, 那么执行下列语句,A.MOV AX,BX AX= 5030H ;B.MOV AX,[BX] AX= 0503H 6、数据定义如下
X1 DB 10H,100,-1 X2 DW 10H,100,-1 X3 DD ?
COUNT EQU X3-X1
变量COUNT的值是 9 , 其表示的意义是 计算分配给以上变量的存储单元的个数
7、A DW 1234H B DW 5678H ┇ PUSH A PUSH B POP A
POP B
试回答:上述程序段执行后(A)= 5678H ;(B)= 1234H 。 8、设某数据段: DATA SEGMENT
ORG 20H NUM1=8
NUM2=NUM1+10H DA1 DB 'COMPUTER'
DB 0AH,0DH COUNT EQU $-DA1
DA2 DW 'CO','MP','UT','ER' DATA ENDS 试回答:
(1)DA1的偏移地址是:( 20H ) (2)COUNT的值是:(0AH ) (3)DA2+5字节单元的内容是 :( ‘U’ ) 9、下列程序段完成什么工作? DAT1 DB 30 DUP(?) DAT2 DB 10 DUP(?) ┇
MOV CX,10 MOV BX,20 MOV SI,0
17
MOV DI,0
NEXT:MOV AL,DAT1[BX][SI] MOV DAT2[DI],AL INC SI INC DI
LOOP NEXT
把DAT1中的后十个元素放到DAT2中
10、下列语句在存储器中分别为变量数据区分配多少个字节单元? (1)VAR3 DD 10 为VAR3分配4个字节单元; (2)VAR4 DW 4 DUP(?),2 为VAR4 分配10个字节单元。 11、设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,(232F7H)=3280H.下列指令分别执行后,IP的值各是多少?
(1)JMP BX IP=____1256H________________ (2)JMP TABLE[BX] IP=______3280H _____________
12、选用NOT,AND,OR XOR逻辑指令编写一指令序列,实现将AL第0位,第2位同时置1,其他位变反。
AND AL,0FEH;OR AL,4H;XOR AL,0FAH
13、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如: PUSH AX PUSH BX PUSH CX PUSH DX
: 恢复现场
试写出恢复现场时的指令序列。
POP DX POP CX POP BX POP AX
14、完成下列操作,选用什么指令:
(1)将AX的内容,减去0520H,和上次运算的借位;
SBB AX,0520H
(2)将变量名TABL的段地址送AX; MOV AX,SEG TABL 15、 D1 DB 20H DUP(?)
D2 DW D1
请写出用一条指令实现取D1的偏移地址送给SI中的三种方法。
① LEA SI,D1
② MOV SI,OFFSET D1 ③ MOV SI,D2
18
16、在8086/8088系统中,存储器是分段组织的,按各段实际长度定位。已知(DS)=2150H,(CS)=2640H,(SS)=2250H,SP=100H,问题:
(1)数据段起始地址是多少? 21500H
(2)计算数据段中最多可以存放多少个字节数据?(要有具体计算式)
22500H-21500H=1000H
(3)代码段最多可以存放多少个字节程序代码?说明理由。
64K 因为分段要求最大为64K
17、已知数据段定义如下: DATA SEGMENT
ORG 100H
BUF DW 'CD',1,3 DUP(4,2 DUP(8,6)) VRA DB 4AH DATA ENDS
单独执行下列语句
LEA BX,BUF BX=__100H _____
MOV CX,VRA-BUF CX=__22H _____(用十六进制数表示)。 18、分别说明下列两组指令中两条指令操作的相同点和不同点 (1)SUB AX,BX CMP AX,BX 相同点:都是做减法
不同点:SUB指令将结果回送给目的操作数,CMP指令不回送给目的操作数
(2)AND CX,DX TEST CX,DX 相同点:都是做与操作
不同点:AND 指令将结果回送给目的操作数,TEST指令不将结果回送给目的操作数
19、下列每组指令中的两条指令有否区别?若有,请说出它们的不同点。 A. MOV AX,OFFSET TABLE LEA AX,TABLE
没有区别
B. JMP SHORT L1 JMP NEAR PTR L1
第一条指令是短跳转,第二条指令是近跳转;
C. MOV AX,[BX] MOV AX,BX
第一条指令BX的内容作为偏移地址,而第二条指令是把BX的内容送给AX; D. SUB DX,CX CMP DX,CX
第一条指令是DX和CX相减结果送给DX,第二条指令也是把DX和CX相减,但不影响每个寄存器的内容,只影响标志位;
E.MOV [BP][DI],AL MOV DS:[BP][DI],AL
第一条指令目的操作数在堆栈段,第二条指令目的操作数在数据段。
20、系统功能调用的方法如何?举例说明。 (1)将调用参数装入指定的寄存器。 (2)如需功能调用号,把它装入AH。 (3)如需子功能调用号,把它装入AL。 (4)按中断号调用DOS或BIOS。 (5)检查返回参数是否正确。
19
例如:MOV AH,2
INT 21H
21、编程序,使:
A.CL寄存器内容取反 NOT CL
B.BX寄存器的低四位置1 OR BX,0FH C.AX寄存器的低四位清0 AND AX,0FFF0H D.CX寄存器的低四位变反 XOR CX,0FFF0H
E.用TEST指令测试DL寄存器的第3位和第6位是否为零。 TEST DL,01001000B 22、指令AND AX,OPR1 AND OPR2中,OPR1和OPR2是两个已赋值的变量,问两个AND操作有什么区别?
第一个AND是与指令,而第二个AND是逻辑与运算。
23、假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后,DX中的值。
(1)SHR DX,1 005CH (2)RCR DL,1 00DCH (3)RCL DX,CL 05CCH 24、写出完成下述功能的程序段:
(1)传送25H到AL寄存器 MOV AL, 25H (2)将AL的内容乘以2 SHL AL, 1 (3)传送15H到BL寄存器 MOV BL, 15H (4)AL的内容乘以BL的内容 MUL BL
并请写出最后(AX)=? (AX)=612H =1554 25、写一程序段,求双字长数DX∶BX的相反数。 NEG DX NEG AX
SBB DX,0
26、在指令系统中,段内、段间返回均为RET指令。试回答: (1)执行段内返回RET指令时,执行的操作是: (IP)←((SP),(SP)+1)
(2)执行段间返回RET指令时,执行的操作是: (IP)←((SP),(SP)+1) (CS) ←((SP)+2,(SP)+3) 27、ARY DW 10 DUP(?) ┇
MOV AL,TYPE ARY MOV BL,LENGTH ARY MOV CL,SIZE ARY
上述MOV指令序列执行后的结果是什么? (AL)=2,(BL)=10,(CL)=20 28、设某数据段: DATA SEGMENT ORG 20H NUM1=8
20
NUM2=NUM1+10H DA1 DB 'COMPUTER' DB 0AH,0DH COUNT EQU $-DA1
DA2 DW 'CO','MP','UT','ER' DATA ENDS 试回答:(1)DA1的偏移地址是:______20H _____________。
(2)COUNT的值是:__________10_________。
(3)DA2+5字节单元的内容是:______’U’_____________。
29、设DS=3A00H,ES=4A00H,在段地址:偏移地址=4A00H:9000H 字单元中有数据3C50H。请用一条指令将数据3C50H装入AX寄存器。(不得使用立即数)
MOV AX,ES:[9000H]
30、设BX=0FFFFH,DI=20H,DS=2000H,CL=8,(20020H)=4567H,下列各条指令分别执行后BX中的内容各为多少?
A. ROL BX,CL ;BX=__0FFFFH ____ B. MOV BX,[DI] ;BX=___4567H ___ 31、DAT1 DB 1,2,3,4 DAT2 DW 3412H,5678H ┇
MOV AX,DAT1+1 ;将DAT1+1字单元内容送入AX中 MOV BL,DAT2+1 ;将DAT2+1字节单元内容送入BL中
已知上述两条MOV语句有语法错误,请根据注释字段的要求将其改正(分别用一条语句改正)。
MOV AX,WORD PTR DAT1+1 MOV BL,BYTE PTR DAT2+1
32、DA1 DB 20H DUP(?)
DA2 DW 10H,45H,7856H
请用两种办法,分别只用一条指令实现将DA1数据区中数据个数送入CX。
MOV CX,LENGTH DA1 MOV CX,DA2-DA1
33、用三种不同方法实现在字存储单元DB1中存储2000H。 (1)DB1 DW 2000H (2)CUNT EQU 2000H DB1 DW CUNT (3)DB1 DW ?
MOV DB1,2000H 34、已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数的物理地址。
MOV AL,[BP+20H]的物理地址是 12488H 。 MOV [BX+DI-80H],AL的物理地址是 232D7H 。
MOV BL,ES:[SI+40H]的物理地址是 31040H 。
21
四、程序分析题
1、XOR AL,AL MOV AH,AL ADD AH,9 JZ NEXT
XCHG AH,AL JMP K1
NEXT:MOV AH,0FFH K1:??
上述程序运行后,AH= 0 ,AL= 9 。 2、XOR AL,AL
INC AL NEG AL INC AL
MOV BL,7FH ADC AL,BL
上述程序段运行后,AL= 80H ,CF= 0 。 3、已知 AX=1234H MOV BX,AX NEG(求补运算) BX ADD AX,BX
执行上述三条指令后,AX= 0 ,BX= 0EDCCH 。 4、BUF1 DB 41H,42H,43H,44H,45H,46H BUF2 DB 6 DUP(?) ?
MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 MOV CX,6 LOP:MOV AL,[SI] SUB AL,7 AND AL,0FH MOV [DI],AL INC SI INC DI LOOP LOP
试回答(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么?
0AH,0BH,0CH,0DH,0EH,0FH
(2)在程序功能不变的情况下,AND AL,0FH指令可否用SUB AL,30H指令替代。
功能不变
5、BUFF DB ‘ABD $ QC% $ A??CYZ’
CONT EQU $ - BUFF ? CLD
LEA DI,BUFF
22
MOV CX,CONT MOV AL,’$’ XOR DX,DX
NEXT:REPNZ SCASB
CMP CX,0 JZ K1 INC DX JMP NEXT K1: ?
上述程序段运行后,DX中的值表示的意义是什么?
DX中存放的是字符串中’$’字符的个数。
6、DA1 DW 1F28H DA2 DB ? ┇
XOR BL,BL MOV AX, DA1 LOP:AND AX,AX JZ KK
SHL AX,1 JNC LOP ADD BL,1 JMP LOP
KK:MOV DA2,BL
就是AX每次逻辑左移一位并且那一位作为CF CF为一就计数加一 功能就是看1F28的二进制有几个1
试问:A.程序段执行后, DA2字节单元内容是什么?
BL=7
B.在程序段功能不变情况下,是否可用SHR指令代替SHL指令? 本程序段是可以的 7、DA1 DB 87H DA2 DB ┇
MOV AH,0 MOV AL,DA1 MOV CL,4 SHR AL,CL MOV DL,10 MUL DL
MOV BL,DA1 AND BL,0FH ADD AL,BL MOV DA2,AL
试回答:A.程序段执行后,(DA2)=_87_____;
23
B.在程序段功能不变的情况下,是否可以用指令SAR替代指令SHR?
不可以。
8、MOV AL,BL NOT AL
XOR AL,BL (相同取零 不同取一) OR BL,AL
程序段执行后,AL=_0FFH______,BL=_0FFH______。 9、STC
MOV CX,0403H MOV AX,0A433H SAR AX,CL XCHG CH,CL SHL AX,CL
程序段执行后,AX=_4860H _____,CF=__1____。 10、BYTE1 DB XX ;任意数 BYATE2 EQU 0FEH ┇
MOV DL,BYTE1 OR DL,BYTE2
程序段执行后,DL=__0FFH ____或__0FEH ____。
11、DA_B DB 0CH,9,8,0FH,0EH,0AH,2,3,7,4 ┇
XOR AX,AX XOR CL,CL XOR BX,BX
LOP:TEST DA_B[BX],01H (判断奇偶 最后一位是0则为偶 否则为奇)
JE NEXT 最后一位如果是一 相与 结果为1 je是为零才跳转的 所以不转 顺序执行 ADD AL,DA_B[BX] INC AH
NEXT:INC BX INC CL
CMP CL,10 JNE LOP
AH是放奇数的个数 AL是放所有奇数的和
上述程序段运行结束后,AH=__4____,AL=__34____。
如果把“JE NEXT指令改为“JNE NEXT“指令,那么AH=_6_____,AL=____50__。 12、VAR_B DB 10 DUP(3,5,7,9) ┇
LEA BX,VAR_B MOV CX,10 XOR AX,AX
LOP:ADD AL,[BX] CMP AL,10 JB NEXT
24
INC AH
SUB AL,10 NEXT:INC BX LOOP LOP
这个就是将3579357935这些数 一个一个加 超过十就计数 然后减十 再往后交
Ah存放的是超过10的次数 但大于10就减十 再往后加 只要大于十就减去10 之后AL中存放的是小于10的次数
上述程序段运行结束后,AH=__5____,AL=_6_____。
13、已知AX=0FF60H,CF=1
MOV DX,96 (DX为60H 有高低位之分 )
XOR DH,0FFH (xor为取反 全为1则为全部取反 高位为FF 低位还是60H) SBB AX,DX SBB 是带进位减 0ff60h -0ff60h -1=0ffffh 产生借位,cf =1
执行上述指令序列后,AX=____0FFFFH _______________,CF=_______1____________。 14、设寄存器AL,BL,CL中内容均为76H, XOR AL,0FH AND BL,0FH OR CL,0FH
执行上述指令序列后,AL=_____79H ______________。 BL=_______06____________,CL=_____7FH ______________。 15、已知AX=0A33AH,DX=0F0F0H AND AH,DL
XOR AL,DH NEG AH NOT AL
执行上述指令序列后,AH=_______60H ____________,AL=______35H _____________。 16、DATA SEGMENT
S9 DB0,1,2,3,4,5,6,7,8,9 DATA ENDS ┇
LEA SI,S9
LEA,DI,S9+1 MOV CX,5 LOP: MOV AL,[SI] XCHG AL,[DI] MOV [SI],AL
ADD SI,2 ADD DI,2 LOOP LOP
上述程序段运行后,S9开始的10个字节存储单元内容是什么?
1,0,3,2,5,4,7,6,9,8
17、 .MODE SMALL
.DATA
DATA1 DW 2000H DATA2 DW 3000H
25
.CODE .STARTUP LEA SI,DATA1 MOV DI,OFFSET DATA2 MOV BX,[SI] MOV CX,[DI] MOV [SI],CX MOV [DI],BX .EXIT
END
上述程序段运行后,(DATA1)=__3000H __,(DATA2)=___2000H ____。 18、DA3 EQU WORD PTR DA4 DA4 DB 0ABH,89H ┇
SHR DA3,1 MOV DX,DA3 SHL DA4,1 MOV CX,DA4
上述程序段运行后,CX=___44AAH __,DX=____44D5H __。 (1)SHR DA4 , 1
(DA4)=89ABH/2=44D5H
此时的变化为:DA5 DB D5 , 44 (2)MOV DX , DA4 (DX)=44D5H (3)SHL DA5 , 1
(DA5)=D5H*2=(1)AAH=AAH 此时的变化: DA4 DW 44AAH (4)MOV CX , DA4 (CX)=44AAH 19、现有如下程序段:
DATA SEGMENT
ORG 0020H
DA1 DW 12H,23H DA2 DB 11H,21H DA3 EQU 1234H DA4 EQU $-DA2 DA5 DB 31H,32H DATA ENDS
请回答:(1)该程序段已占有的存储字节数是多少? 是8个字节
(2)符号名DA4的值是多少?符号名DA5的值是多少? 符号名DA4的值为2,符号名DA5的值是0026H。 20、执行下列程序段后,回答问题。 ORG 1221H
26
NUM DW 12H
?
MOV AX,NUM
MOV BX,OFFSET NUM
MOV CL,BYTE PTR NUM+1 MOV CH,TYPE NUM HLT
请问:(AX)=_0012H _____,(BX)=__1221H ____,(CX)=_0200H _____。 21、阅读如下程序:
ADRR DB XXH,XXH,??,XXH
NUM EQU $ -ADRR RETT DB? ?
MOV CX,NUM MOV BX,-1 DON:INC BX
CMP ADRR[BX],0 LOOPZ DON JNZ NEXT
MOV BL,0FFH
NEXT: MOV RETT,BL
HLT
请问:(1)该程序完成的功能是什么?
在以ADRR为起始地址的数组中,查找第一个非0数据
(2)程序执行后指出RETT字节单元中的内容是什么?
若找到则将第一个非0数据在数组中的偏移量送入RETT单元中;若无非0数据,则将0FFH送入RETT单元中。
22、现有一子程序: SUB1 PROC
TEST BL,80H JE PLUS
TEST AL,80H JNE EXITO JMP XCHANGE
PLUS:TEST BL,80H JE EXITO
XCHANGE:XCHG AL,BL EXITO:RET
SUB1 ENDP
试回答:(1)子程序的功能是什么?
子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否
则不变。
(2)若调用子程序前AL=9AH,BL=77H,返回主程序时,AL=__77H ____,
BL=_9AH _____。
27
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)该程序完成的功能是什么?
该程序完成的功能是从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
程序段执行完,回答下述问题
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 AX=1 B. MOV AX,TYPE TAB1 AX=2
C. MOV CX,LENGTH TAB1 CX=20
28
D. MOV DX,SIZE TAB1 DX=40 E. MOV CX,LENGTH TAB2 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 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
29
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 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=__14H _____,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)= 5678H ,(B)= 1234H 。 B.设执行前SP=2000H,执行后SP= 2000H 。 34、现有下列程序段:
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)=5400H ,(BL)= 06H ,(DX)= 2106H 。 35、分析下面程序段,
30
MOV AL,200 AL=1100 1000 SAR AL,1 AL=1110 0100 MOV BL,AL AL=BL=1110 0100 MOV CL,2 CL=2
SAR AL,CL AL=1111 1001
ADD AL,BL AL=AL+BL=1111 1001 + 1110 0100 =1101 1101
试问程序段执行后(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 MOV BL,[BX]
MOV AH,02H ;显示输出 INT 21H :
试回答:(1)上述程序段的功能是什么? 程序段功能:根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示STRING中第几个字符。
(2)如从键盘输入字符‘4’,程序段有什么结果?
显示器显示字符‘D’
38、 AND AL,AL
JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3
31
:
上述程序运行后,试回答:
(1)当(AL)= 0 时,程序转向BRCH1 (2)当(AL)= 1 时,程序转向BRCH2 (3)当(AL)= -1 时,程序转向BRCH3 39、MOV AX,0BC5FH MOV BX,0C0FBH XOR AX,BX XOR AX,BX
上述程序段运行后,AX=_305FH __________,CF=___不变__________ 40、HEX DB ‘0123456789ABCDEF’ HCOD DB ?,? ┇
MOV BX,OFFSET HEX MOV AL,1AH MOV AH,AL AND AL,0FH XLAT HEX
MOV HCOD[1],AL MOV CL,12 SHR AX,CL
XLAT HEX MOV HCOD,AL
上述程序段运行后,HCOD和HCOD+1两字节单元内容是什么?
HCOD和HCOD+1两字节单元内容是1和A。 41、DATA SEGMENT ORG 3040H
YY1 DB 30H,40H YY2 DW 3040H DATA ENDS ┇
MOV BX,OFFSET YY1 MOV AX,[BX]
MOV CL,BYTE PTR YY2+1 MOV CH,TYPE YY2
上述程序段运行后,AX=___4030H_________,BX=____3040H CX=___0230H__________ 42、A DB 0F8H
B DB 3 DUP(?)
┇
LEA DI,B MOV CX,3
MOV AL,A LOP:SAR AL,1 MOV [DI],AL INC DI
32
________, LOOP LOP
上述程序段运行后,从B单元开始依次存放的数据的多少? 0FCH,0FEH,0FFH
43、已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么? MOV CX,10 LEA BX,BUF
K2:MOV AL,[BX] CMP AL,‘Z’ JBE K1
SUB AL,20H MOV [BX],AL K1:INC BX LOOP K2
┇’
把小写字母改成大写字母。 44、MOV CL,8 MOV AL,0 NOT AL
ROL AL,CL CMP AL,0FFH JZ NEXT MOV AL,0 NEXT:…… 上述程序段运行后,(AL)=___0FFH____________,CF=_____1______ 45、已知 AX=1234H MOV BX,AX NEG BX ADD AX,BX
执行上述三条指令后,AX= 0 BX= EDCCH 。 46、程序段完成什么功能? MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL
OR DL,BL
将DX:AX中的双字乘以16
47、BUF1 DB 41H,42H,43H,44H,45H,46H BUF2 DB 6 DUP(?) ?
MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 MOV CX,6 LOP:MOV AL,[SI]
33
SUB AL,7 AND AL,0FH MOV [DI],AL INC SI INC DI LOOP LOP
试回答(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么? 0AH,0BH,0CH,0DH,0EH,0FH 48、DATA SEGMENT
S9 DB 0,1,2,3,4,5,6,7,8,9 DATA ENDS
??
LEA SI,S9 LEA,DI,S9+1 MOV CX,5
LOP: MOV AL,[SI]
XCHG AL,[DI] MOV [SI],AL ADD SI,2 ADD DI,2 LOOP LOP
上述程序段运行后,S9开始的10个字节存储单元内容是什么?
1,0,3,2,5,4,7,6,9,8
六、编制程序题
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指令)。 DATA SEGMENT N1 DB ××,××,××,?? N2 DB ××,××,××,?? N3 DB 10H DUP(0) DATA ENDS
5、加密移动字符串,设缓冲区SBUFF中有20个小写字母a,将每个a加上它相对于缓冲区的位移量后传送到缓冲区DBUFF。 6、在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的和,并将和数存入以SUM为首址的数据区中。
34
DATA SEGMENT
BUF1 DW -56,24,54,-1,89,-8,?? BUF2 DW 45,-23,124,345,-265,?? SUM DW 10 DUP(0) DATA ENDS
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 + Y * Z)/8 -Y 除法余数丢弃 若ZF=1 ,程序转EQ;否则转NOT_EQ。
15、已知在以ARRAY为首地址的数据区中存放10个带符号字数据: ARRAY DW 1,2,-1,3,4,-2,-3,4,5,-6
编程将ARRAY分成两个数组:正数数组P_ARY和负数数组N_ARY,并分别显示正数项个数和负数项个数。 要求:源程序格式完整。
16、X,Y,Z三个字节存储单元中各有一个无符号数,其中有两个数据相等,找出不相等的哪个数,并存入W单元中,试编写完成上述功能的程序段(只编写有关代码部分,勿需书写源程序格式)。
17、在数据段偏移量为100H开始的存储空间内连续存放着10个字节型无符号二进制数,编写一段程序,求出该10个数之和,并将结果存放在寄存器AX中。
18、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
2.已知有256个字节整数A1、A2、A3、??、A256 存放在以NUMBER为首址的数据区中,编写一完整源程序将其中的负数去除后剩下的正数重新排序存放在以PLUS开始的数据区中。
19、在数据段中有一个首地址为array的未排序的50D字节的正整数数组,请编写一程序,找出其中的最大数和最小数及最大数和最小数的个数。
35
20、A1单元开始定义了一长度为N的字符串,找出其中所有的小写字母并存放到以A2单元开始的存储区中。统计出小写字母的个数,存放到SL单元中。请编一完整的源程序。数据段如下:
DATA SEGMENT
A1 DB ‘??’ N EQU $ -A1
A2 DB N DUP(?) SL DB ? DATA ENDS
《汇编语言程序设计》模拟试题答案
一、单选题: 1 C 16 B 31 B 46 A 61 D 76 B 91 B A C C C D D 2 A 17 C 32 D 47 A 62 A 77 C 92 B A A B B B A 3 D 18 B 33 D 48 D 63 B 78 C 93 A D B D B C C 4 A 19 C 34 A 49 A 64 D 79 A 94 A A B C C A 5 B 20 A 35 B 50 C 65 D 80 C 95 D C B B B C 6 A 21 D 36 B 51 C 66 C 81 A 96 A 111 B A C C B 7 A 22 C 37 B 52 A 67 D 82 B 97 C A D A C B 8 D 23 B 38 D 53 A 68 C 83 C 98 D D A C B D 9 C 24 C 39 D 54 D 69 B 84 A 99 D B D D C C 10 A 25 D 40 D 55 C 70 B 85 D B B B B B C 11 D 26 A 41 A 56 D 71 C 86 D D A A A B B 12 D 27 D 42 D 57 A 72 B 87 D A A D D C C 13 A 28 D 43 C 58 D 73 C 88 D C D A A C D 14 D 29 D 44 B 59 A 74 A 89 D C D B D A A 15 A 30 D 45 B 60 A 75 B 90 B C C B D D C 100 101 102 103 104 105 106 107 108 109 110 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 176 177 178 179 180 181 182
二、填空题:
1. 20H 2.立即数 3. 55 4. DS*10H+SI+20H 5. AX 6. 64K 7. 23456H 8. 指令性、指示性、宏指令 9. 相对基址变址 10. IP、CS 11. 6DH、9BH 12. 0、10H 13. 2000H、120H 36
三、简答题:
1.(1) (IP)←((SP),(SP)+1) (2) (IP)←((SP),(SP)+1) (CS) ←((SP)+2,(SP)+3) 2.(1) MOV CX ,LENGTH DAT1 (2) MOV CX,DAT2-DAT1 3. 12488H 232D7H 31040H 4. A. CX不能做间址寄存器
B. 源操作数和目的操作数不能同时为存储器操作数 C. 标号没有BYTE 属性
D. 循环次数大于1时应先至于CL中 E. 没有指定移位次数
5. AX=5030H AX=0503H
6. 9,计算分配给以上变量的存储单元的个数 7. A =5678H B =1234H
8.(1) 20H (2) 0AH (3) ‘U’ 9. 把DAT1中的后十个元素放到DAT2中 10.(1)为VAR3分配4个字节单元; (2)为VAR4 分配10个字节单元。 11.(1) IP=_1256H_ (2) IP=3280H_
12. AND AL,0FEH;OR AL,4H;XOR AL,0FAH 13. POP DX
POP CX POP BX POP AX
14.(1)SBB AX,0520H
(2)MOV AX,SEG TABL 15. ① LEA SI,D1
② MOV SI,OFFSET D1 ③ MOV SI,D2
16. (1)21500H (2)22500H-21500H=1000H (3)64K 因为分段要求最大为64K 17. BX=100H CX=22H 18.(1)相同点:都是做减法
不同点:SUB指令将结果回送给目的操作数,CMP指令不回送给目的操作数 (2)相同点:都是做与操作
不同点:AND 指令将结果回送给目的操作数,TEST指令不将结果回送给目的操作数 19.A. 没有区别
B. 第一条指令是短跳转,第二条指令是近跳转;
C. 第一条指令BX的内容作为偏移地址,而第二条指令是把BX的内容送给AX; D. 第一条指令是DX和CX相减结果送给DX,第二条指令也是把DX和CX相减,但
不影响每个寄存器的内容,只影响标志位;
E. 第一条指令目的操作数在堆栈段,第二条指令目的操作数在数据段。 20.(1)将调用参数装入指定的寄存器。 (2)如需功能调用号,把它装入AH。 (3)如需子功能调用号,把它装入AL。
37
(4)按中断号调用DOS或BIOS。 (5)检查返回参数是否正确。 例如:MOV AH,2
INT 21H
21. A. NOT CL
B. OR BX,0FH
C. AND AX,0FFF0H D. XOR CX,0FFF0H E. TEST DL,01001000B
22.第一个AND是与指令,而第二个AND是逻辑与运算。 23.(1)005CH (2)00DCH (3)05CCH 24.(1)MOV AL, 25H (2)SHL AL, 1 (3)MOV BL, 15H (4)MUL BL
最后,(AX)=612H =1554 25. NEG DX NEG AX
SBB DX,0 26.(1) (IP)←((SP),(SP)+1) (2) (IP)←((SP),(SP)+1) (CS) ←((SP)+2,(SP)+3) 27.(AL)=2,(BL)=10,(CL)=20 28.(1)20H (2)10 (3)’U’ 29.MOV AX,ES:[9000H] 30.① 0FFFFH ② 4567H
31. MOV AX,WORD PTR DAT1+1 MOV BL,BYTE PTR DAT2+1 32. MOV CX,LENGTH DA1
MOV CX,DA2-DA1 33.(1)DB1 DW 2000H (2)CUNT EQU 2000H DB1 DW CUNT (3)DB1 DW ?
MOV DB1,2000H 34.12488H,232D7H,31040H 四、程序分析题:
1、AH= 0 ,AL= 9 2、AL= 80H ,CF= 0 3、AX= 0 ,BX= 0EDCCH 4、(1)0AH,0BH,0CH,0DH,0EH,0FH
(2)功能不变
5、DX中存放的是字符串中’$’字符的个数。 6、① BL=7 ② 本程序段是可以的。 7、① (DA2)=87 ② 不可以。
38
8、AL=___0FFH___,BL=__0FFH____。 9、4860H,CF=1
10、DL=_0FFH___或___0FEH___ 11、① AH=__4____,AL=___34___。 ②AH=___6___,AL=___50___ 12、AH=__5____,AL=___6___。 13、AX=0FFFFH, CF=1
14、AL=79H, BL=06, CL=7FH 15、AH=60H, AL=35H
16、1,0,3,2,5,4,7,6,9,8 17、(DATA1)=3000H, (DATA2)=2000H 18、(CX)=44AAH, (DX)=44D5H
19、(1)该程序段已占有的存储字节数是8个字节。
(2)符号名DA4的值为2,符号名DA5的值是0026H。 20、(AX)=0012H (BX)=1221H(CX)=0200H
21、(1)在以ADRR为起始地址的数组中,查找第一个非0数据。
(2)若找到则将第一个非0数据在数组中的偏移量送入RETT单元中;若无非0数据,则将0FFH送入RETT单元中。
22、(1)子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否则不变。
(2)AL=77H,BL=9AH
23、(1)该程序完成的功能是从20H(32)个有符号数中找出最小的数送入RESULT单元中。
(2)该程序的循环次数是1FH(31)。
24、RESULT+2字存储单元的内容是MAX(X1, X2, … XN) BX= 100H + 2×(COUNT-1) 程序循环次数=COUNT
25、A. AX=1 B. AX=2 C. CX=20 D. DX=40 E. CX=1 26、AL=120
27、第一条指令是把AX算术左移一位;第二条指令是把DX带进位循环左移一位。
28、首先把P乘上2,然后比较2P的高16位与Q的高16位,如果前者小于后者,则把AX置上1,如果前者大于后者,则把AX置上2,如果相等,则比较2P的低16位和Q的低16位,如果前者小于等于后者,则把AX置上2,如果前者大于后者,则把AX置上1。 29、45B0H L3
30、 AX=EDCCH DX=5FFFH 31、61H DF=0 32、 AH=04H DL=2
实现DL=AX/CX AX=AX MOD CX 33、 ①(A)=5678H (B)=1234H
②SP=2000H
34、(AX)=5400H (BL)=06H (DX)=2106H 35、(BL)=0E4H (AL)=0DDH 36、(AL)=-5或0FBH
(BL)=14H或20
39
37、①程序段功能:根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示STRING中第几个字符。
②显示器显示字符‘D’
38、①(AL)=0,②(AL)=1,③(AL)=-1 39、AX=_305FH_,CF=不变
40、HCOD和HCOD+1两字节单元内容是1和A。
41、AX=___4030H________,BX=___3040H________, CX=__0230H_______ 42、0FCH,0FEH,0FFH
43、把小写字母改成大写字母。 44、(AL)=__0FFH_________,CF=____1_______ 45、AX=0 BX=EDCCH
46、将DX:AX中的双字乘以16
47、0AH,0BH,0CH,0DH,0EH,0FH 48、1,0,3,2,5,4,7,6,9,8 五、程序填空题: 1、MOV CX,CUNT
ADD AL,30H 2、该题有错误
3、①INC BX ②DEC CX 4、①MOV [BX],AL ②MOV AL,AH 5、 XOR AH, AL
JZ ZERO
6、CMP AL, [BX]
JNZ LOOP1
7、(1) ADD AL,[BX] (2) MOV AX,SUM (3) LOOP NEXT 8、(1) ADD DI,99 (2) XCHG AL,[DI]
(3) INC SI
9、LEA SI , FLD ADD AX,[SI] 10、CMP AL ,0 NEG AL 11、 ①JE K1或JZ K1
②MOV PLW,AX 12、 ①CLD ②SUB SI,2
或①STD ②ADD DI,2 13、XOR AL,0FH JNZ K1
14、SHR AL,CL AND AL,0FH
15、 XOR AH,AL JZ ZERO 16、MOV [BX] AL, MOV AH,AL
17、 CMP AL,ARRAY[DI] A2:LOOP A1 18、 MOV CX,CUNT ADD AL,30H
40
41
正在阅读:
汇编常考试题(含有详解)03-12
砌体产生裂缝的原因和防治措施12-29
小小的人儿啊是什么歌02-13
营销业实习生实习日记范文10-29
二溪小学晋位升级工作总结05-14
北京市通州区2015届高三模拟考试(二)理综试题含答案12-28
西安市高三上学期地理第一次月考试卷A卷05-09
中国玻璃纤维电子布市场环境与竞争力分析报告2016-2021年03-12
纬地低等级公路设计要点11-18
小学三年级综合实践活动实施方案05-29
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 考试题
- 汇编
- 详解
- 含有