编写一多向预分支电缆符号程序,做无符号数的算数运算,假设运算结果均会大于0且小于256

您还可以使用以下方式登录
当前位置:&>&&>& > 汇编程序设计第二版重点习题集
汇编程序设计第二版重点习题集
《汇编语言程序设计》模拟试题一、单项选择题1、指令JMP FAR PTR DONE属于(
)。A.段内转移直接寻址
B.段内转移间接寻址C.段间转移直接寻址
D.段间转移间接寻址2、执行下面指令序列后,结果是(
)。MOV AL,82HCBWA. AX=0FF82H
B. AX=8082H
C. AX=0082H
D. AX=0F82H3、存储器分段,每个段不超过(
)。A.64K个字
B.32K个字节
C.1兆个字节
D.64K个字节4、CPU发出的访问存储器的地址是(
)。A.物理地址
B.偏移地址
C.逻辑地址
D.段地址5、BUF
10H DUP(3 DUP(2,10H),3,5)上述语句汇编后,为变量BUF分配的存储单元字节数是(
D.1926、若AX= - 15要得到AX=15应执行的指令是(
)。A.NEG AX
B.NOT AXC.INC AX
D.DEC AX7、系统执行传送指令MOV时(
)。A.不影响标志位
B.影响DF方向标志 C.影响SF符号标志
D.影响CF进位标志8、 MOV AL,79ADD AL,0B1H上面指令执行后,设置的标志位CF和OF的值是(
)。A.CF=0,OF=1
B.CF=1,OF=1
C.CF=0,OF=1
D.CF=1,OF=09、检查BUF的内容是否为正偶数,如是正偶数,则AL=0。下面程序段正确的是(
K2:,,,,K1:C. MOV
AL,BUFTEST
AL,80HMOV
AL,0K4:10、下列指令中操作数在代码段中的是(
)。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,VAR1C.LES BX,VAR
D.LEA BX,VAR12、下列指令执行后对源和目的操作数均无影响的是(
)。A.MOV [BX+2],AX
B.SUB AX,2467HC.SBB [SI],BX
D.CMP AX,BX13、表示过程定义结束的伪指令是(
)。A.ENDP
D.ENDM14、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(
D.MOV15、上面指令执行后,AX的内容是(
) 。A.0302H
D.0303H16、BUF1 DB 3 DUP(0,2 DUP(1,2),3)COUNT EQU $ - BUF1符号COUNT等价的值是(
D.817、DA1 DW 2A05HDA2 DB 0FAH,,MOV
AL,BYTE PTR DA1SUB
DA2,AL上述指令执行后,DA2中的内容是( ) 。A.0DAH
D.0D0H18、为在一连续的存储单元中依次存放数据41H,42H,,,,48H,下面的数据定义语句中有语法错误的是(
)。A.DB 41H,42H,43H,44H,45H,46H,47H,48HB.DW 4142H,4344H,4546H,4748HC.DB ,,ABCDEFGH'D.DW ,,BA',,,DC',,,FE',,,HG'19、设(SP)=0028H,执行段内返回指令RET 6后,SP的内容是(
)。A.0036H
D.0020H20、条件转移指令JNBE产生转移的条件是(
)。A. CF=0 AND ZF=0
B. CF=0 AND ZF=1C. CF=1 AND ZF=0
D. CF=1 AND ZF=121、下列寄存器中, 作为16位寄存器的是 (
D.DX22、在程序运行过程中, 确定下一条指令的物理地址的计算表达式是 (
)。A.DS*16+SI
B. ES*16+DI
C. CS*16+IP
D. SS*16+SP23、物理地址(10FF0H )=10H,(10FF1H )=20H,(10FF2H )=30H,从地址10FF1H中取一个字的内容是 (
)。A.1020H
D.2010H24、将AX 清零, 下列指令错误的是(
)。A.SUB AX,AX
B.XOR AX,AX
C.OR AX,00H
D.AND AX,00H25、下列指令中, 影响或修改标志位的是 (
)。A.LOOPZ
D.POPF26、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( )。
D.12169H27、通用数据传送指令中, 错误的是 (
)。A.累加器到存储器
B.立即数到存储器
C.寄存器到存储器
D.存储器到存储器28、移位指令中, 应先将移位次数放在 (
D.CL29、MOV AL, 79ADD AL, 0B1H上述指令执行后, CF和OF的值是 (
)。A.CF=0 OF=1
B.CF=1 OF=1
C.CF=0 OF=0
D.CF=1 OF=030下列语句中能实现留空8个字节单元的语句是(
)。A. DA1
B. DA2 DW ?,?C. DA3
?31、循环指令LOOPNZ终止循环的条件是( )。A.CX=0,且ZF=0
B.CX=0,或ZF=1
C.CX10,且ZF=0
D.CX10,或ZF=132、设DL=55H,执行指令后能使DL中的数据为0AAH的指令是(
)。A.TEST
DL, 0AAHC.NEG
D.XOR DL, 0FFH33、完成同指令XCHG AX,BX相同功能的指令或指令序列是(
)。A. MOV
B. MOV BX,AXC. PUSH
D. MOV CX,AXPOP
MOV AX,BXMOV BX,CX34、JMP BX 的目标地址的偏移量为(
)。A. BX 的内容
B. BX 所指向的内存单元的内容C. IP + BX 的内容
D. IP + [BX]35、在程序执行过程中,IP寄存器中始终保存的是(
)。A.上一条指令的首地址
B.下一条指令的首地址C.正在执行指令的首地址
D.需计算有效地址后才能确定地址36、用户为了解决自己的问题,用汇编语言所编写的程序,称为(
)。A.目标程序
C.可执行程序
D.汇编程序37、某系列微机对存储器的分段,如果每一个段最多的字存储单元(16位二进制)是32K,那么表示段内字节单元偏移地址的二进制位数应是(
)。A.20位
D.12位38、可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是(
)。A.AX,BX,CX,DX
B.DS,ES,CS,SSC.SP,BP,IP,BX
D.SI,DI,BP,BX39、用一条指令仅实现将BX+SI=&AX的方法是(
)。A.XCHG AX,[BX][SI]
B.MOV AX,[BX+SI]C.LEA
AX,BX[SI]
AX,[BX][SI]40、设SP初值为2000H,执行指令“PUSH
AX”后,SP的值是(
)。A.1FFFH
D.1FFEH41、条件转移指令JB产生程序转移的条件是(
)。A.CF=1
C.CF=1和ZF=1
D.CF=1和ZF=042、选用串操作指令时,错误的操作是(
)。3A.置方向标志位
B.根据串操作指令设置重复次数并送入CXC.设置源操作数及目的操作数指针
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=0C.AL=5FH SF=0 CF=1
D.AL=60H SF=0 CF=044、设AX=1000HNEG AXNOT AX执行上述指令后,正确的结果是(
)。A.AX=1001H
B.AX=0FFFH
C.AX=1000H
D.AX=0111H45、CBW指令的功能是(
)。A.把源操作数的符号位扩展到目的操作数中
B.把AL中的符号位扩展到AH中C.把AH中的符号位扩展到AL中
D.把AX中的符号位扩展到DX中46、汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是(
)。A.Variable
B.First & ld
D.‘Memphis’47、ORG 0030HDA1
DB 0,‘0’,30HDW
DA1数据为3000H字存储单元的偏移地址是(
)。A.0030H
D.0033H48、 NUM1 DB(12 OR 6 AND 2)GE 0EHNUM2 DB(12 XOR 6 AND 2)LE 0EH上述数据定义语句中,NUM1和NUM2字节单元的内容分别是(
)。A.NUM1=0,NUM2=0
B.NUM1=0,NUM2=0FFHC.NUM1=0FFH,NUM2=0
D.NUM1=0FFH,NUM2=0FFH49、要求将A,B两个字符的ASCⅡ码41H,42H顺序存放在连续两个字存储单元中,可选用的语句是(
)。A.DA1 DB
C.DA1 DB 0ABH
D.DA1 DW 0ABH50、 DA1 EQU BYTE PTR DA2DA2 DW 0ABCDH┇SHL DA1,1SHR DA2,1上述指令序列执行后,DA2字存储单元的内容是(
)。A.0ABCDH
D.559AH51、下面语句中有语法错误的语句是(
)。A.DB 45H
B.DW OABCDH
C.DW ‘ABCD’
D.DD ‘AB’52、 MOV CL,8ROL AX,CLOR AX,BX假设AX=0012H,BX=0034H,那么上述程序段执行后,AX中的结果是(
)。A.1234H
D.0034H453、执行下列指令序列后,正确的结果是(
)。MOV AL,81HADD AL,ALADC AL,ALA.AL=05H
D.AL=205H54、 DA2 DB 12H,34H,56H,0ABHDB $-DA2BUF1 DB 10H,20H,30H┇LEA SI,DA2MOV CL,4[SI]MOV CH,LENGTH BUF1上述指令序列运行后,CX的内容是(
)。A.03ABH
D.0104H55、在汇编语言程序中,对END语句的叙述正确的是( )。A. END语句是一可执行语句
B. END语句表示程序执行到此结束C. END语句表示源程序到此结束
D. END语句在汇编后要产生机器码56、十六进制数88H,可表示成下面几种形式,请找出错误的表示(
)。A. 无符号十进制数136
B. 带符号十进制数-120C. 压缩型BCD码十进制数88
D. 8位二进制数-8的补码表示57、指令指针寄存器是(
D. PSW58、当执行指令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,AL60、下列指令执行后总是使CF=0,OF=0的是( )。A. AND
D. INC61、完成同指令XCHG AX,BX相同功能的指令或指令序列是(
)。A. MOV AX,BX
MOV BX,AXC. PUSH AX
MOV CX,AXPOP BX
MOV AX,BXMOV BX,CX62、设AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA之后,其结果应是(
)。A.AH=01,AL=05
B. AH=1, AL=15C. AH=0, AL=0FH
D. AH=0,AL=0563、设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为(
)。A. OF=1,CF=0
B. OF=1,CF=15C. OF=0,CF=0
D. OF=0,CF=164、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是(
)。A. CX=0且ZF=0
B. CX=0且ZF=1C. CX=0或ZF=0
D. CX=0或ZF=165、下面指令中,合理而有意义的指令是(
)。A. REP LODSB
B. REP SCASB
C. REP CMPSB
D. REP MOVSB66、在汇编语言程序中,对END语句的叙述正确的是(
)。A. END语句是一可执行语句
B. END语句表示程序执行到此结束C. END语句表示源程序到此结束
D. END语句在汇编后要产生机器码67、下面的数据传送指令中,错误的操作是(
)。A. MOV
SS:[BX+DI],1000H
B. MOV DX,1000HC. MOV
WORD PTR[BX],1000H
D. MOV DS,2000H68、下面指令执行后,变量DAB中的内容是(
AL,BYTE PRT DAWSUB
DAB,ALA. 0DAH
D. 0D0H69、执行下列指令后,正确的结果是(
)。MOV AL,100MOV BL,-2A. AL=100H
B. AL=64H
C. AL=64H
D. AL=100HBL=02H
BL=0FEH70、设数据段中已有:DA1 DB 12H,34HDA2 DW 56H,78H下面有语法错误的语句是(
)。A. ADR1
DA1+1,AXC. MOV
DA2+1,AL
DA1+1,AX71、实现将DX:AX中存放的32位数扩大四倍,正确的程序段是(
)。A. SHL AX,2
B. RCL AX,2
C. MOV CX,2
D. SHL AX,1ROL DX,2
LOP:SHL AX,1
SHL AX,1RCL DX,1
RCL DX,1LOOP
RCL DX,172、TA1 DW 0102H,0304H,0506HTA2 DB 02H,03H,04H:MOV BX,DS:[0006H]AND BX,0FFHAND BH,[BX]上述指令序列运行后,BX的内容是(
)。A. 0605H
D. 0204H73、当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是(
D. JL74、下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为(
)。TEST BH,01HK1A. JNE
D. JC75、测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是(
)。A. TEST BL,4FH
B. XOR BL,4FH
C. AND BL,4FH
D. OR BL,4FHJZ NEXT
JZ NEXT76、用DEBUG调试汇编语言程序时,显示某指令的地址是2F80:F400,此时段寄存器CS的值是( )。A.F400H
D.2F800H77、设DS=1100H,(12000H)=80H,(12001H)=20H,(12002H)=30H,执行MOV AX, [1000H]则AX=( )。A.8000H
D.8020H78、下列四条指令中错误的是( )。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, AL80、已知AX=0001H,下列四条指令执行后,不能使ZF=1的语句是( )。A.DEC AX
B.SUB AX, 1
C.AND AX , 1
D.CMP AX,181、在系统中,约定用于形成堆栈段数据物理地址的寄存器有( )。A.SS, SP, BP
B.SS, SP, BXC.DS, BX, BP
D.DS, SP, BP82、有指令MOV AX, 1234H,指令中的立即数1234H是存储在( )。A.数据段
D.堆栈段83、要在程序中定义缓冲区BUF,保留9个字节存储空间的语句是( )。A.BUF DW 9
B.BUF DB 9C.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,ALDAA
DAA85、在执行子程序段内调用CALL SUBR指令后,SP的值( )。A.加1
D.减286、完成将AX清零,并且使CF清零,下面错误的指令是( )。A.SUB AX, AX
B.AND AX, 0
C.XOR AX,AX
D.MOV AX,087、定义宏指令的伪指令是( )。A.PROC和ENDP
B.CODE和ENDS
C.EQU和END
D.MACRO和ENDM88、在汇编语言源程序中,表达式的计算是由( )完成的。A.编程者
B.汇编程序
C.程序执行时
D.连接程序89、为了使执行串操作指令时,地址按减量方式处理应使用指令( )。A.CLI
D.STD790、有数据定义NUM DB '12345' ,经汇编后,NUM占有( )字节存储单元。A.1
D.791、汇编语言源程序每个语句可以由四项组成,如语句要完成一定功能,那么该语句中 不可省略的项是( )。A.名字项
C.操作数项
D.注释项92、在堆栈段中,存放栈顶地址的寄存器是(
D.BP93、汇编语言程序中,反映指令操作结果的标志是(
)。A.状态标志
B.控制标志
D.DF94、书写汇编语言程序时规定,对字母开头的十六进制数,其前面必须加(
D.H95、计算机中用来存储程序、数据等信息的记忆装置是(
)。A.控制器
D.存储器96、MOV [SI][BX],AL,该指令中目的操作数采用的寻址方式是(
)。A.基址加变址
C.寄存器间接
D.寄存器相对97、MUL WORD PTR[SI]指令中的乘积是存放在(
)、AX中。A.CX
D.SI98、汇编语言中,存放下一条将要执行的指令地址寄存器是(
D.IP99、在计算机中,以先进后出方式工作的存储空间是(
)。A.存储器 B.RAM
D.堆栈100、TEST AH,30H指令的功能与(
)指令功能相类似。A.AND
D.OR101、在存储器中留60个字的空单元的伪指令是(
)。A.ARRAY EQU 60
B.ARRAY DW 60C.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
D.12BFEH105、在下列指令的表示中,不正确的是(
)。A.MOV AL,[BX+SI]
B.JMP SHORT DONIC.DEC [BX]
D.MUL CL106、在进行二重循环程序设计时,下列描述正确的是(
)。A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内B.外循环初值应置外循环之内;内循环初值应置内循环之内C.内、外循环初值都应置外循环之外8D.内、外循环初值都应置内循环之外,外循环之内107、条件转移指令JNE的测试条件为(
)。A.ZF=0
D.CF=1108、8086CPU在基址加变址的寻址方式中,变址寄存器可以为(
)。A.BX或CX
D.SI或DI109、已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在( )中。A.数据段中偏移量为3236H的字节
B.附加段中偏移量为3234H的字节C.数据段中偏移量为3234H的字节
D.附加段中偏移量为3236H的字节 110、执行如下程序:MOV AX,0MOV BX,1MOV CX,100A: ADD AX,BXINC BXLOOP AHLT执行后(BX)=(
D.102111、上题的程序执行后(AX)=(
)。A.5000
D.5150112、对于下列程序段:AGAIN:MOV AL,[SI]MOV ES:[DI],ALINC SIINC DILOOP AGAIN也可用(
)指令完成同样的功能。A.REP MOVSB
B.REP LODSB
C.REP STOSB
D.REPE SCASB 113、下面指令序列执行后完成的运算,正确的算术表达式应是(
)。MOV AL,BYTE PTR XSHL AL,1DEC ALMOV BYTE PTR Y,ALA.Y=X*2+1
B.X=Y*2+1
C.X=Y*2-1
D.Y=X*2-1114、在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来(
)。A.占内存空间小,但速度慢
B.占内存空间大,但速度快C.占内存空间相同,速度快
D.占内存空间相同,速度慢115、在程序执行过程中,IP寄存器中始终保存的是(
)。A.上一条指令的首地址
B.下一条指令的首地址C.正在执行指令的首地址
D.需计算有效地址后才能确定地址116、PSW寄存器中共有(
)位条件状态位,有(
)位控制状态位。A.6、3
D.4、8117、下列指令执行时出错的是(
)。A.ADD BUF1,BUF2
B.JMP DWORD PTR DAT [BX]9C.MOV AX,[BX+DI] NUM
D.TEST AL,08H118、已知(AX)=1234H,执行下述三条指令后,(AX)=(
)。MOV BX,AXNEG BXADD AX,BXA.1234H
D.0000H119、在下列指令中,(
)指令的执行会影响条件码中的CF位。A.JMP NEXT
B.JC NEXT
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,1122、设DS=8225H,DI=3942H,指令NEG BYTE PTR [DI]操作数的物理地址是(A、85B92H
D、12169H123、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(
)。A、AX,BX,CX,DX
B、BX,BP,SI,DIC、SP,IP,BP,DX
D、CS,DS,ES,SS124、循环指令LOOPNZ终止循环的条件是(
)。A、CX=0,且ZF=0
B、CX=0,或ZF=1C、CX≠0,且ZF=0
D、CX≠0,或ZF=1125、对寄存器AX的内容乘以4的正确指令序列是(
)。A、SHR AX,1
B、SHL AX,1
SHL,AX,1C、ROL AX,1
D、RCR AX,1
RCR AX,1 126、保存字除法商的寄存器是(
D、通用寄存器127、设DH=10H,执行NEG DH指令后,正确的结果是(
)。A、DH=10H
B、DH=0F0H
CF=0C、DH=10H
D、DH=0F0H
CF=1128、下列传送指令中有语法错误的是(
)。A、MOV CS,AX
B、MOV DS,AXC、MOV SS,AX
D、MOV ES,AX129、下面指令执行后,改变AL寄存器内容的指令是(
)。A、TEST
AL,ALC、CMP
AL,BL130、一条指令中目的操作数不允许使用的寻址方式是(
)A. 寄存器寻址
B. 立即数寻址
C.变址寻址
D.寄存器间接寻址131、执行下面指令序列后,结果是(
AL,82HCBWA、AX=0FF82H
B、AX=8082H
C、AX=0082H
D、AX=0F82H 132、与MOV
BX,OFFSET VAR指令完全等效的指令是(
)。A、MOV
BX,VARC、LES
BX,VAR133、.STACK伪指令定义的默认堆栈段大小是(
)。A、1KB
D、4KB134、MOV
SP,3210HPUSH
AX执行上述指令序列后,SP寄存器的值是(
)。A、3211H
D、3212H135、BUF
10H DUP(3 DUP(2,10H),3,5)上述语句汇编后,为变量BUF分配的存储单元字节数是(
)。A、80H
D、192136、在汇编语言程序的开发过程中使用宏功能的顺序是(
)。A、宏定义,宏调用
B、宏定义,宏展开C、宏定义,宏调用,宏展开
D、宏定义,宏展开,宏调用137、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是(
)。A、名字项
B、操作码项
C、操作数项
D、注释项138、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(
)。A、CMP
D、MOV139、为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是(
)。A、INC CX
B、SUB CX,0FFFFHJZ MINUS
JZ MINUSC、AND CX,0FFFFH
D、XOR CX,0FFFFHJZ MINUS
JZ MINUS140、设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=0001HC、DI=0102H,CX=0002H
D、DI=0101H,CX=0003H141、与LEA
BX, ARRAY功能相同的指令是(
ARRAYC、MOV
BX,OFFSET ARRAY
BX, ARRAY142、汇编程序的错误提示: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
D.A&B=C145、8086的存储器组织是将存储器划分为段,可作为段的起始地址是(
)。A.185A2H
D.0AB568H146、堆栈中当前出栈的存储单元地址是(
)。A.SS*10H+SP
B.SS*10H+BP
C.SS*10+SP
D.SS*10+BP147、设DL=55H,执行指令后能使DL中的数据为0AAH的指令是(
)。11A.TEST DL, 0AAH
B.OR DL, 0AAHC.NEG DL
D.XOR DL, 0FFH148、当SS=9876H, SP=4328H,执行POPF指令后,堆栈顶部的物理地址是(
)。A.9CA8AH
D.0DB00H149、DW 10H
DUP(2 DUP(3),300H)上述定义的数据单元中,能构成0303H字存储单元的个数是(
D.0FH150、用一条指令实现将寄存器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
D.0C260H152、下列中指令执行后,能影响标志位的指令是(
)。A.PUSHF
C.JNLE OPR
LOP153、循环控制指令LOOPNZ继续执行循环的条件是(
)。A.CX≠0且ZF=1
B.CX≠0且ZF=0C.CX≠0或ZF=1
D.CX≠0或ZF=0154、下面两个传送指令语句中源操作数寻址方式是(
EQU 32H┇MOV AX,VAR1MOV BX,VAR2A.都是立即数寻址
B.前一条指令是立即数寻址,后一条指令是直接寻址C.前一条指令是直接寻址,后一条指令是立即数寻址
D.都是直接寻址155、ARRAY DW 6,9,$+4,10H,1,$+4┇MOV AX, ARRAY+4设变量ARRAY的偏移量是0084H,上述指令执行后AX中的内容是(
)。A.0009
D.0010H156、设AX=0CCBBH,CF=1AND AX,7FFEHRCR AX,1上述两条指令执行后,AX和CF中的内容分别是(
)。A.AX=265DH,CF=0
B.AX=265DH,CF=1C.AX=A65DH,CF=0
D.AX=A65DH,CF=1157、DA_B
,,AB' ,,,CD',,,EF",,,GH'┇MOV BX,DA_W+3MOV BH,DA_B+3执行上述两条指令后,BX中的内容是(
)。A.,,EF'
D.,,FF'158、指令语句中标号的错误定义是( )12A.在代码段中的名字项定义,后面紧跟冒号
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,48HB.DW 4142H,4344H,4546H,4748HC.DB ,,ABCDEFGH'D.DW ,,BA',,,DC',,,FE',,,HG'161、设NUM=B,指令“MOV AH,NUM SHL 3”执行后AX中的值是(
D.B162、XOR AX,AXMOV CX,5NEXT:ADD AL,6AAALOOP NEXT上述程序段执行的结果是(
)。A.AX=0030H
B.AX=0300H
D.AX=001EH163、如某循环程序是对两个数组进行某种运算处理,当数组处理完毕或运算处理的结果不为某一指定值时(每次循环时,对运算结果已进行了测试),就结束循环。如要求一定使用循环控制指令,这时应选用的指令是(
)。A.LOOP
C.LOOPNE/LOOPNZ
D.JCXZ164、在DEBUG上机调试程序时,存储器地址表示为12FA:015F,它的物理地址是(
)。A. 12FAH
D. 015FH 165、IP指令指针寄存器是属于(
)。A. 通用寄存器
B. 段寄存器
C. 变址寄存器
D. 控制寄存器 166、下面有语法错误的指令是(
)。A. ADD
[BX+3],ALC. ADD
[BP+2],DA1;(DA1是变量名) 167、完成对DX的有符号数除以2的指令是(
)。A. IDIV
DX,1 168、使进位位置1的指令是(
)。A. CLC
D. NOP 169、设AL=-15,要使AL=15应执行的指令是(
)。A. NEG
AL 170、在条件转移指令中,结果为负数则转移的指令是(
)。A. JNS
D. JP 171、下面的XCHG指令中,语法正确的是(
)。A. XCHG
BL,[BX]C. XCHG
BUF1,BUF2172、一条指令中目的操作数不允许使用的寻址方式是(
)。A. 寄存器寻址
B. 立即数寻址
C. 变址寻址
D. 寄存器间接寻址
13173、设SP=1FFEH,执行下列指令后,SP寄存器的值是(
)。POPFPUSH AXA.. 2000H
D. 1FFEH174、LDS
SI,ES:[2000H]指令的全部功能是(
)。A. 把地址2000H送SIB. 把地址2000H字单元的内容送SIC. 把地址2000H字单元内容送SI,把2002H字单元内容送DSD. 把地址2000H字单元内容送DS,把2002H字单元内容送SI175、设AL=04H,BL=0F8H,执行MUL BL指令后,结果是(
)。A. AX=0032H
B. AX=00E0H
C. AX=03E0H
D. AX=0FFE0H176、设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=0001HC. DI=0102H,CX=0002H
D. DI=0101H,CX=0003H176、某数据段如下:DATA
SEGMENTORG
ENDSY 单元的偏移地址是(
D. 12H177、下面指令语句中,语法正确的是(
)。A. INC
[BX],60C. JMP
WORD PTR [BX],5 178、 DATA
SEGMENTDA1
32 DUP(?)DA2
1456H,789AHDA3
BX, DA3上述指令执行后,BX中的内容是(
)。A. 20H
D. 21H179、 已定义数据段DATA
SEGMENTORG
15H,34H,55HADR
ENDS能使AX中数据为偶数的语句是(
)。A. MOV
AX, WORD PTR DA1
AL, DA1+2
AL, BYTE PTR ADR+1
AX, WORD PTR DA1+2 180、 如代数据段名为DATA_SEG,它的起始地址为20A00H,对数据段寄存器DS赋值段地址值的方法是(
)。A. MOV
DS:DATA_SEGC. DATA_SEG
AX,DATA_SEGMOV
DS,AX181、OV
AL,65上述程序段执行后,AL中的内容是(
)。A. 40H
D. 61H182、用CMP指令对两个无符号数进行A-B的比较后,如A=B或A&B,则分别产生转移,这种情况应选择的条件转移指令是(
)。A. 先用JE指令,再用JNC指令B. 先用JNC指令,再用JE指令C. 上述两条条件转移指令(JE和JNC)无先后次序D. 用上述两个条件转移指令不能完成上述功能要求二、填空题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.在系统中,存储器是分段的,每段最大长度是_______字节,段内偏移地址从_______到_______。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,80HMOV BL,08HCBWIDIV BL则AH=_______AL=_______。8.已知数据定义语句ORG 120HVECT1 DW 200HVECT2 DW VECT115执行 MOV AX,VECT1 AX=_______MOV BX,VECT2 BX=_______。 三、简答题1、在指令系统中,段内、段间返回均为RET指令。试回答:(1)执行段内返回RET指令时,执行的操作是:(2)执行段间返回RET指令时,执行的操作是:2、用两种办法,分别只用一条指令实现将DA1数据区中数据个数送入CX。DA1
20H DUP(?)DA2
10H,45H,7856H3、已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数的物理地址。MOV
AL,[BP+20H]的物理地址是 :MOV
[BX+DI-80H],AL的物理地址是:MOV
BL,ES:[SI+40H]的物理地址是:4、请指出下列指令错误原因:A. OR
AX,[CX]B. ADD [SI],[BX][DI]C. JMP
LOOPSD. SAR
AX,4E. RCL
DX5、DS=2000H, AX=2000H, BX=5030H, (25030H)=03H,(25031H)=05H, 那么执行下列语句,A.MOV AX,BX AX=
;B.MOV AX,[BX] AX=6、数据定义如下X1
10H,100,-1X2
10H,100,-1X3
?COUNT EQU X3-X1变量COUNT的值是, 其表示的意义是 。7、A
5678H┇PUSH
B试回答:上述程序段执行后(A)=
。8、设某数据段:DATA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DB 'COMPUTER'16DB
0AH,0DHCOUNT
$-DA1DA2 DW
'CO','MP','UT','ER'DATA ENDS试回答:(1)DA1的偏移地址是:(
)(2)COUNT的值是:(
)(3)DA2+5字节单元的内容是 :(
)9、下列程序段完成什么工作?DAT1
DUP(?)DAT2
DUP(?)┇MOV
DI,0NEXT:MOV
AL,DAT1[BX][SI]MOV
DAT2[DI],ALINC
NEXT10、下列语句在存储器中分别为变量数据区分配多少个字节单元?(1)VAR3
DD 10(2)VAR4
DW 4 DUP(?),211、设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,(232F7H)=3280H.下列指令分别执行后,IP的值各是多少?(1)JMP BX
IP=___________________(2)JMP TABLE[BX]
IP=___________________12、选用NOT,AND,OR XOR逻辑指令编写一指令序列,实现将AL第0位,第2位同时置1,其他位变反。13、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如:PUSH AXPUSH BXPUSH CXPUSH DX:恢复现场试写出恢复现场时的指令序列。14、完成下列操作,选用什么指令:(1)将AX的内容,减去0520H,和上次运算的借位;(2)将变量名TABL的段地址送AX;15、 D1
20H DUP(?)D2
D117请写出用一条指令实现取D1的偏移地址送给SI中的三种方法。16、在系统中,存储器是分段组织的,按各段实际长度定位。已知(DS)=2150H,(CS)=2640H,(SS)=2250H,SP=100H,问题:(1)数据段起始地址是多少?(2)计算数据段中最多可以存放多少个字节数据?(要有具体计算式)(3)代码段最多可以存放多少个字节程序代码?说明理由。17、已知数据段定义如下:DATA SEGMENTORG 100HBUF
DW 'CD',1,3 DUP(4,2 DUP(8,6))VRA
4AHDATA ENDS单独执行下列语句LEA BX,BUF
BX=_______MOV CX,VRA-BUF
CX=_______(用十六进制数表示)。18、分别说明下列两组指令中两条指令操作的相同点和不同点(1)SUB AX,BX
CMP AX,BX(2)AND CX,DX
TEST CX,DX19、下列每组指令中的两条指令有否区别?若有,请说出它们的不同点。A. MOV AX,OFFSET TABLE
LEA AX,TABLEB. JMP SHORT L1
JMP NEAR PTR L1C. MOV AX,[BX]
MOV AX,BXD. SUB DX,CX
CMP DX,CXE.MOV [BP][DI],AL
MOV DS:[BP][DI],AL20、系统功能调用的方法如何?举例说明。21、编程序,使:A.CL寄存器内容取反B.BX寄存器的低四位置1C.AX寄存器的低四位清0D.CX寄存器的低四位变反E.用TEST指令测试DL寄存器的第3位和第6位是否为零。22、指令AND AX,OPR1 AND OPR2中,OPR1和OPR2是两个已赋值的变量,问两个AND操作有什么区别?23、假定(DX)=B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后,DX中的值。(1)SHR DX,1(2)RCR DL,1(3)RCL DX,CL24、写出完成下述功能的程序段:(1)传送25H到AL寄存器(2)将AL的内容乘以2(3)传送15H到BL寄存器(4)AL的内容乘以BL的内容并请写出最后(AX)=?1825、写一程序段,求双字长数DX∶BX的相反数。26、在指令系统中,段内、段间返回均为RET指令。试回答:(1)执行段内返回RET指令时,执行的操作是:(2)执行段间返回RET指令时,执行的操作是:27、ARY DW 10 DUP(?)┇MOV
AL,TYPE ARYMOV
BL,LENGTH ARYMOV
CL,SIZE ARY上述MOV指令序列执行后的结果是什么?28、设某数据段:DATA
SEGMENTORG
20HNUM1=8NUM2=NUM1+10HDA1 DB
'COMPUTER'DB
0AH,0DHCOUNT EQU $-DA1DA2
'CO','MP','UT','ER'DATA ENDS试回答:(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. ROL BX,CL
;BX=______B. MOV BX,[DI]
;BX=______31、DAT1 DB 1,2,3,4DAT2 DW 3412H,5678H┇MOV AX,DAT1+1 ;将DAT1+1字单元内容送入AX中MOV BL,DAT2+1 ;将DAT2+1字节单元内容送入BL中已知上述两条MOV语句有语法错误,请根据注释字段的要求将其改正(分别用一条语句改正)。32、DA1
20H DUP(?)DA2
10H,45H,7856H请用两种办法,分别只用一条指令实现将DA1数据区中数据个数送入CX。33、用三种不同方法实现在字存储单元DB1中存储2000H。34、已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数的物理地址。MOV
AL,[BP+20H]的物理地址是。MOV
[BX+DI-80H],AL的物理地址是19MOV
BL,ES:[SI+40H]的物理地址是四、程序分析题1、XOR
K1NEXT:MOV AH,0FFHK1:,,,,上述程序运行后,AH=
BL,7FHADC
AL,BL上述程序段运行后,,。3、已知 AX=1234HMOV
BXADD AX,BX执行上述三条指令后,,4、BUF1
41H,42H,43H,44H,45H,46HBUF2
6 DUP(?),,MOV
SI,OFFSET BUF1MOV
DI,OFFSET BUF2MOV
CX,6LOP:MOV
AL,[SI]SUB
AL,0FHMOV
[DI],ALINC
LOP试回答(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么?(2)在程序功能不变的情况下,AND AL,0FH指令可否用SUB AL,30H指令替代。5、BUFF
,,ABD $ QC% $ A,,,,CYZ"CONT EQU $ - BUFF,,CLDLEA
DI,BUFF20MOV
CX,CONTMOV
AL,"$"XOR
DX,DXNEXT:REPNZ SCASBCMP CX,0JZ K1INC DXJMP NEXTK1: ,,上述程序段运行后,DX中的值表示的意义是什么?6、DA1 DW 1F28HDA2 DB ?┇XOR BL,BLMOV AX, DA1LOP:AND AX,AXJZ KKSHL AX,1JNC LOPADD BL,1JMP LOPKK:MOV DA2,BL试问:A.程序段执行后, DA2字节单元内容是什么?B.在程序段功能不变情况下,是否可用SHR指令代替SHL指令?7、DA1 DB 87HDA2 DB┇MOV AH,0MOV AL,DA1MOV CL,4SHR AL,CLMOV DL,10MUL DLMOV BL,DA1AND BL,0FHADD AL,BLMOV DA2,AL试回答:A.程序段执行后,(DA2)=______;B.在程序段功能不变的情况下,是否可以用指令SAR替代指令SHR?8、MOV AL,BLNOT ALXOR AL,BLOR BL,AL程序段执行后,AL=______,BL=______。219、STCMOV CX,0403HMOV AX,0A433HSAR AX,CLXCHG CH,CLSHL AX,CL程序段执行后,AX=______,CF=______。10、BYTE1 DB XX ;任意数BYATE2 EQU 0FEH┇MOV DL,BYTE1OR DL,BYTE2程序段执行后,DL=______或______。11、DA_B DB 0CH,9,8,0FH,0EH,0AH,2,3,7,4┇XOR AX,AXXOR CL,CLXOR BX,BXLOP:TEST DA_B[BX],01HJE NEXTADD AL,DA_B[BX]INC AHNEXT:INC BXINC CLCMP CL,10JNE LOP上述程序段运行结束后,AH=______,AL=______。如果把“JE NEXT指令改为“JNE NEXT“指令,那么AH=______,AL=______。12、VAR_B DB 10 DUP(3,5,7,9)┇LEA BX,VAR_BMOV CX,10XOR AX,AXLOP:ADD AL,[BX]CMP AL,10JB NEXTINC AHSUB AL,10NEXT:INC BXLOOP LOP上述程序段运行结束后,AH=______,AL=______。13、已知AX=0FF60H,CF=1MOV DX,96XOR DH,0FFH22SBB AX,DX执行上述指令序列后,AX=___________________,CF=___________________。14、设寄存器AL,BL,CL中内容均为76H,XOR AL,0FHAND BL,0FHOR CL,0FH执行上述指令序列后,AL=___________________。BL=___________________,CL=___________________。15、已知AX=0A33AH,DX=0F0F0HAND AH,DLXOR AL,DHNEG AHNOT AL执行上述指令序列后,AH=___________________,AL=___________________。16、DATA SEGMENTS9 DB0,1,2,3,4,5,6,7,8,9DATA ENDS┇LEA SI,S9LEA,DI,S9+1MOV CX,5LOP: MOV AL,[SI]XCHG AL,[DI]MOV [SI],ALADD SI,2ADD DI,2LOOP LOP上述程序段运行后,S9开始的10个字节存储单元内容是什么?17、 .MODE
SMALL.DATADATA1
2000HDATA2
3000H.CODE.STARTUPLEA
SI,DATA1MOV
DI,OFFSET DATA2MOV
BX,[SI]MOV
CX,[DI]MOV
[SI],CXMOV
[DI],BX.EXITEND上述程序段运行后,(DATA1)=_________________,(DATA2)=_________________。18、DA3 EQU WORD PTR DA423DA4 DB 0ABH,89H┇SHR DA3,1MOV DX,DA3SHL DA4,1MOV CX,DA4上述程序段运行后,CX=___________________,DX=___________________。19、现有如下程序段:DATA SEGMENTORG 0020HDA1 DW 12H,23HDA2 DB 11H,21HDA3 EQU 1234HDA4 EQU $-DA2DA5 DB 31H,32HDATA ENDS请回答:(1)该程序段已占有的存储字节数是多少?(2)符号名DA4的值是多少?符号名DA5的值是多少?20、执行下列程序段后,回答问题。ORG 1221HNUM DW 12H,,MOV AX,NUMMOV BX,OFFSET NUMMOV CL,BYTE PTR NUM+1MOV CH,TYPE NUMHLT请问:(AX)=______,(BX)=______,(CX)=______。21、阅读如下程序:ADRR DB XXH,XXH,,,,,,XXHNUM EQU $ -ADRRRETT DB?,,MOV CX,NUMMOV BX,-1DON:INC BXCMP ADRR[BX],0LOOPZ
DONJNZ NEXTMOV BL,0FFHNEXT: MOV RETT,BLHLT请问:(1)该程序完成的功能是什么?(2)程序执行后指出RETT字节单元中的内容是什么?2422、现有一子程序:SUB1 PROCTEST BL,80HJE PLUSTEST AL,80HJNE EXITOJMP XCHANGEPLUS:TEST BL,80HJE EXITOXCHANGE:XCHG AL,BLEXITO:RETSUB1
ENDP试回答:(1)子程序的功能是什么?(2)若调用子程序前AL=9AH,BL=77H,返回主程序时,AL=______,BL=______。23、阅读程序段:BLOCK DB 20H,1FH,08H,81H,0FFH,,,RESULT DB ?,,START:LEA SI,BLOCKMOV CX,[SI]INC SIMOV AL,[SI]LOP1: CMP AL,[SI+1]JNG NEXTMOV AL,[SI+1]NEXT:INC SILOOP LOP1MOV RESULT,ALHLT请问:(1)该程序完成的功能是什么?(2)该程序循环的次数是多少?24、阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。ORG 100HBLOK DW X1,X2,…,XNCOUNT EQU($-BLOLOK)/2RESULT DW COUNT,?LEA BX,BLOK-2MOV CX,RESULTXOR AX,AXGOON:ADD BX,2CMP AX,[BX]JAE NEXTMOV AX,[BX]NEXT:LOOP GOON25MOV RESULT+2,AX程序段执行完,回答下述问题RESULT+2字存储单元的内容=______;BX=______;程序循环次数=______25、对于下面的数据定义,各条MOV的指令单独执行后,有关寄存器的内容是什么? FLDB
DW 20 DUP(?)TAB2
DB "ABCD"A. MOV AX,TYPE FLDBB. MOV AX,TYPE TAB1C. MOV CX,LENGTH TAB1D. MOV DX,SIZE TAB1E. MOV CX,LENGTH TAB226、下面程序段执行完后,AL的内容是什么?MOV AL,10ADD AL,ALSHL AL,1MOV BL,ALSHL AL,1ADD AL,BL27、试问下面的程序段完成的功能是什么?SAL AX,1RCL DX,128、假设X和X+2单元的内容为双精度数P,Y和Y+2单元的内容为双精度数Q(X和Y为低位字),试说明下列程序段做什么工作?MOV DX,X+2MOV AX,XADD AX,XADC DX,X+2CMP DX,Y+2JL L2JG L1CMP AX,YJBE L2L1:MOV AX,1JMP SHORT EXITL2:MOV AX,2EXIT:INT 20H29、MOV AX, 9090HSUB AX, 4AE0HJC L1JO L2JMP L3上述程序执行后AX=_______,程序转向_______30、假设寄存器AX=1234H,DX=0A000H26MOV BX, 0MOV CX, BXSUB CX, AXSBB BX, DXMOV AX, CXMOV DX, BX上述程序段执行后AX=_______ ,DX=_______程序功能是_______31、
BUF DB 45H, 68H, 7AH, 35H, 39H,,MOV DI, OFFSET BUFMOV CX, 5MOV AL, ,,a'CLDREP STOSB该程序段执行后,BUF中的内容是_______ ,方向标志DF=_______32、假设寄存器AX=5AH,CX=23H,,MOV DL, 0LOP:SUB AX, CXJC NEXTINC DLJMP SHORT LOPNEXT:ADD AX, CXHLT上述程序段执行后,AX=_______,DL=_______用数学表达式指明程序功能:_______33、A DW 1234HB DW 5678H:PUSH
B试回答:A.上述程序段执行后(A)=
。B.设执行前SP=2000H,执行后SP=。34、现有下列程序段:MOV
AX,6540HMOV
DX,3210HMOV
BL,CL27OR
DL,BL试问上述程序段运行后,(AX)=
,(BL)=
,(DX)=
。35、分析下面程序段,MOV AL,200SAR AL,1MOV BL,ALMOV CL,2SAR AL,CLADD AL,BL试问程序段执行后(BL)=
,(AL)=
。36、程序段如下:BLK1 DB 46,84,34,-5,20,122,73:MOV CX,7LEA S1,BLK1NEXT: MOV AL,[SI]INC SITEST AL,81HLOOPZ NEXTMOV BL,[SI]:请回答程序段运行后:(AL)=
,(BL)=
。37、STRING DB ,,ABCDEFGHI":MOV AH,01;从键盘输入字符1~9INT 21HAND AL,0FHDEC ALXOR AH,AHMOV BX,OFFSET STRINGADD BX,AXMOV BL,[BX]MOV AH,02H ;显示输出INT 21H:试回答:(1)上述程序段的功能是什么?(2)如从键盘输入字符‘4’,程序段有什么结果?38、 AND AL,ALJZ
BRCH1RCR AL,1JZ
BRCH2RCL AL,1INC AL28JZ
BRCH3:上述程序运行后,试回答:(1)当(AL)=
时,程序转向BRCH1(2)当(AL)=
时,程序转向BRCH2(3)当(AL)=
时,程序转向BRCH339、MOV AX,0BC5FHMOV BX,0C0FBHXOR AX,BXXOR AX,BX上述程序段运行后,AX=___________,CF=_____________40、HEX
DB ‘ABCDEF’HCOD DB
?,?┇MOV BX,OFFSET HEXMOV AL,1AHMOV AH,ALAND AL,0FHXLAT HEXMOV HCOD[1],ALMOV CL,12SHR AX,CLXLAT HEX MOV HCOD,AL上述程序段运行后,HCOD和HCOD+1两字节单元内容是什么?41、DATA SEGMENTORG 3040HYY1 DB 30H,40HYY2 DW 3040HDATA ENDS┇MOV BX,OFFSET YY1MOV AX,[BX]MOV CL,BYTE PTR YY2+1MOV CH,TYPE YY2上述程序段运行后,AX=___________,BX=____________, CX=___________42、A
0F8HB DB 3 DUP(?)┇LEA DI,BMOV CX,3MOV AL,A LOP:SAR AL,1MOV [DI],ALINC DILOOP LOP29上述程序段运行后,从B单元开始依次存放的数据的多少?43、已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么?
MOV CX,10LEA BX,BUFK2:MOV AL,[BX]CMP AL,,,Z"JBE K1SUB AL,20HMOV [BX],ALK1:INC BXLOOP K2┇44、MOV CL,8MOV AL,0NOT ALROL AL,CLCMP AL,0FFHJZ NEXTMOV AL,0NEXT:……上述程序段运行后,(AL)=___________,CF=___________45、已知 AX=1234HMOV
BXADD AX,BX执行上述三条指令后,AX=
。46、程序段完成什么功能?MOV
DL,BL47、BUF1
41H,42H,43H,44H,45H,46HBUF2
6 DUP(?),,MOV
SI,OFFSET BUF1MOV
DI,OFFSET BUF2MOV
CX,6LOP:MOV
AL,[SI]SUB
AL,0FHMOV
[DI],ALINC
LOP试回答(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么?48、DATA SEGMENTS9 DB 0,1,2,3,4,5,6,7,8,9DATA ENDS,,,,LEA SI,S9LEA,DI,S9+1MOV CX,5LOP:
MOV AL,[SI]XCHG AL,[DI]MOV [SI],ALADD SI,2ADD DI,2LOOP LOP上述程序段运行后,S9开始的10个字节存储单元内容是什么?五、程序填空题1、下面程序段的功能是把DA1数据区的数0-9转换为对应的ASCII码,并存入ASCI数据区。试完善本程序段。DA1
00H,01H,02H,03H,04H,05H,06H,07H,08H,09HASCI
10 DUP(?)CUNT = ASCI-DA1,,,,LEA
SI,DA1LEA
DI,ASCILOP1:MOV AL,[SI]MOV
[DI],ALINC
LOP12、设A,B是长度为10的字节数组,用串操作指令编写程序实现A,B两数组内容的相互交换。试完善本程序。DATA SEGMENTA
DB 1,2,3,4,5,6,7,8,9,0AHORG
DB 0AH,9,8,7,6,5,4,3,2,1DATA ENDSLEA
CX,1031LOP:LODSBXCHG
AL,[DI] DEC
DISTOSBINC
LOP3、某程序段欲用单个字符显示的2号DOS功能调用去显示一字符串“STRING”。试在下面空白处填上适当的指令 (每一空白处仅填一条指令)。STR1 DB ,,STRING"┇MOV CX,6MOV BX,OFFSET STR1LOP:MOV DL,[BX]MOV AH,02HINT 21HA.______B.______JNE LOP4、程序段的功能是依次产生0~9的10个ASCII码,并存入BUF1数据区,请在空白处填上指令(每一空白处仅填一条指令)。BUF1 DB 10 DUP(?)┇LEA BX, BUF1MOV CX,10XOR AL,ALLOP: MOV AH,ALADD AL,30HA.______INC BXB.______INC ALLOOP LOP5、下面程序段是判断寄存器AH和AL中第3位是相同,如果相同,AH置0,否则AH置全1。试把空白处填上适当指令。_____________________AND AH,08H_____________________MOV AH,OFFHJMP NEXTZERO:MOV AH,0NEXT:,,,,6、以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大 32数并送入MAX单元中。BUF
5,6,7,58H,62,45H,127,,,,,COUNT
;COUNT等于变量BUF的字节数MAX
DB?┇MOV BX,OFFSET BUFMOV CX,COUNT-1MOV AL,[BX]LOP1:INC BX_____________________JAE NEXTMOV AL,[BX]NEXT:DEC CX_____________________MOV MAX,AL7、在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。请在程序中的空格处填入适当指令使其完整。LEA BX,TABLEMOV CX,10MOV SUM,AXNEXT:(1)ADC AH,0JNC DONJC ENDO(2)DON:INC BX(3)ENDO:HLT 8、BEG为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在程序中的空格处填入适当的指令使其完整。MOV CX,32HLEA SI,BEGMOV DI,SI(1)DON:MOV AL,[SI](2)MOV [SI],AL(3)DEC DILOOP DONHLT9、下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出)
33FLD DW 10, -20, 30, -60, -71, 80, 79, 56_______MOV CX, 8XOR AX, AXR1:_______ADD SI, 2LOOP R1MOV CL, 8IDIV CLHLT10、已知数据段DAT单元存放某一数N(-6≦N≦6)下面的程序段用查表法求数N的平方值,结果送SQR单元,请将程序填写完整。TABLE DB 0,1,4,9,16,25DAT DB NSQR DB ?LEA BX, TABLEMOV AL, DAT_______JGE NEXT_______NEXT:XLATHLT11、设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。TEST AX,8000H MOV PLW,BXJMP DONEK1:DONE:12、现有下列数据段:DATA
SEGMENTSTR1
,,ABCDEFGHIJKL"COUNT
$-STR1BUF DB COUNT DUP(0)DATA
ENDS下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。MOV SI,OFFSET BUF-1MOV DI,OFFSET BUFMOV CX,COUNT LOOP:MOVSB34 LOOP LOP13、DA1数据区中有50个字节数据,下面程序段将每个数据的低四位变反,高四位不变,并依次存入DA2数据区中。请将程序补充完整。MOV CX,50LEA SI,DA1LEA DI,DA2K1:MOV AL,[SI]___________MOV [DI],ALINC SIINC DIDEC CX___________14、下面程序段完成将存储单元A1中一个压缩型BCD码拆成二个非压缩型BCD码,高位BCD码存放在A3单元,低位BCD码存放在A2单元,再分别转换为对应的ASCⅡ码。请将程序补充完整。MOV AL,A1MOV CL,4___________OR AL,30HMOV A3,ALMOV AL,A1___________OR AL,30HMOV A2,AL15、下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。试把空白处填上适当指令。_____________________AND AH,08H_____________________MOV AH,OFFHJMP NEXTZERO:MOV AH,0NEXT:,,,,16、程序段的功能是依次产生0~9的10个ASCII码,并存入BUF1数据区,请在空白处填上指令(每一空白处仅填一条指令)。BUF1 DB 10 DUP(?),,,,LEA
BX, BUF1MOV
AL, ALLOP: MOV AH,ALADD
AL,30H35____________INC
BX____________INC
LOP17、下面程序执行后,AL的内容为ARRAY数组中的最小数,请在空白处各填上一条指令。
ARRAY DB 3,5,- 3,- 2,4,5,- 8,6,,,,MOV CX,7MOV DI,0MOV AL,ARRAYA1: INC DI JLE A2MOV AL,ARRAY [DI] 18、下面程序段的功能是把DA1数据区的数0-9转换为对应的ASCII码,并存入ASCI数据区。试完善本程序段。DA1
00H,01H,02H,03H,04H,05H,06H,07H,08H,09HASCI
10 DUP(?)CUNT = ASCI-DA1,,,,LEA
SI,DA1LEA
DI,ASCI LOP1:MOV AL,[SI] MOV
[DI],ALINC
LOP1六、编制程序题1、设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关程序功能的指令):Y= X
当X &=0Y= 0
当X&02、A1单元开始定义了一长度为N的字符串,找出其中所有的小写字母并存放到以A2单元开始的存储区中。统计出小写字母的个数,存放到SL单元中。请编一完整的源程序。3、已知DAT1字节单元有一个数据,试编制一程序段将该数据的低4位变为1010B,最高位(第7位)置1,其余3位不变,结果送DAT2字节单元。4、在N1和N2两数据区中,分别有10H个带符号数。试编制一源程序,找出对应项中较小的数据,并将这些较小的数据存入N3数据区中(要求:对应项比较时必须用CMPS指令)。
DATA SEGMENT36N1 DB ××,××,××,,,,,N2 DB ××,××,××,,,,,N3 DB 10H DUP(0)DATA ENDS5、加密移动字符串,设缓冲区SBUFF中有20个小写字母a,将每个a加上它相对于缓冲区的位移量后传送到缓冲区DBUFF。6、在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的和,并将和数存入以SUM为首址的数据区中。DATA SEGMENTBUF1
-56,24,54,-1,89,-8,,,,,BUF2
45,-23,124,345,-265,,,,,SUM
10 DUP(0)DATA ENDS7、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。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
1,2,-1,3,4,-2,-3,4,5,-6编程将ARRAY分成两个数组:正数数组P_ARY和负数数组N_ARY,并分别显示正数项个数和负数项个数。要求:源程序格式完整。16、X,Y,Z三个字节存储单元中各有一个无符号数,其中有两个数据相等,找出不相等的哪个数,并存入W单元中,试编写完成上述功能的程序段(只编写有关代码部分,勿需书写源程序格式)。17、在数据段偏移量为100H开始的存储空间内连续存放着10个字节型无符号二进制数, 37编写一段程序,求出该10个数之和,并将结果存放在寄存器AX中。18、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。2.已知有256个字节整数A1、A2、A3、,,,,、A256 存放在以NUMBER为首址的数据区中,编写一完整源程序将其中的负数去除后剩下的正数重新排序存放在以PLUS开始的数据区中。19、在数据段中有一个首地址为array的未排序的50D字节的正整数数组,请编写一程序,找出其中的最大数和最小数及最大数和最小数的个数。20、A1单元开始定义了一长度为N的字符串,找出其中所有的小写字母并存放到以A2单元开始的存储区中。统计出小写字母的个数,存放到SL单元中。请编一完整的源程序。数据段如下:DATA
N DUP(?) SL
ENDS《汇编语言程序设计》模拟试题答案一、单选题:38二、填空题:2.
三、简答题:1.(1) (IP)←((SP),(SP)+1) (2) (IP)←((SP),(SP)+1)
(CS) ←((SP)+2,(SP)+3) 2.(1) MOV
CX ,LENGTH
(2) MOV CX,DAT2-DAT1 3.
31040H 4. A. CX不能做间址寄存器B. 源操作数和目的操作数不能同时为存储器操作数 C. 标号没有BYTE 属性D. 循环次数大于1时应先至于CL中
E. 没有指定移位次数5.
AX=0503H6.
9,计算分配给以上变量的存储单元的个数 7.
B =1234H8.(1)
(3) ,,U" 9. 把DAT1中的后十个元素放到DAT2中 10.(1)为VAR3分配4个字节单元;
(2)为VAR4 分配10个字节单元。 11.(1)
(2) IP=3280H_12. AND AL,0FEH;OR AL,4H;XOR AL,0FAH 13.
POP DXPOP CX
POP AX14.(1)SBB AX,0520H(2)MOV AX,SEG TABL
15. ① LEA SI,D1② MOV SI,OFFSET D1
③ MOV SI,D216. (1)21500H
(2)2H=1000H
(3)64K 因为分段要求最大为64K 17. BX=100H
CX=22H 18.(1)相同点:都是做减法不同点:SUB指令将结果回送给目的操作数,CMP指令不回送给目的操作数 (2)相同点:都是做与操作不同点:AND 指令将结果回送给目的操作数,TEST指令不将结果回送给目的操作数 19.A. 没有区别B. 第一条指令是短跳转,第二条指令是近跳转; 39C. 第一条指令BX的内容作为偏移地址,而第二条指令是把BX的内容送给AX;D. 第一条指令是DX和CX相减结果送给DX,第二条指令也是把DX和CX相减,但不影响每个寄存器的内容,只影响标志位;E. 第一条指令目的操作数在堆栈段,第二条指令目的操作数在数据段。20.(1)将调用参数装入指定的寄存器。(2)如需功能调用号,把它装入AH。(3)如需子功能调用号,把它装入AL。(4)按中断号调用DOS或BIOS。(5)检查返回参数是否正确。例如:MOV
AH,2INT 21H21. A. NOT CLB. OR BX,0FHC. AND AX,0FFF0HD. XOR CX,0FFF0HE. TEST DL,B22.第一个AND是与指令,而第二个AND是逻辑与运算。23.(1)005CH (2)00DCH (3)05CCH24.(1)MOV AL, 25H(2)SHL AL, 1(3)MOV BL, 15H(4)MUL BL最后,(AX)=612H =155425.
NEG DXNEG AXSBB DX,026.(1) (IP)←((SP),(SP)+1)(2) (IP)←((SP),(SP)+1)
(CS) ←((SP)+2,(SP)+3)27.(AL)=2,(BL)=10,(CL)=2028.(1)20H
(3)"U"29.MOV AX,ES:[9000H]30.① 0FFFFH ② 4567H31. MOV AX,WORD
DAT1+1MOV BL,BYTE
MOV CX,LENGTH
DA1MOV CX,DA2-DA133.(1)DB1 DW 2000H(2)CUNT EQU 2000HDB1 DW CUNT(3)DB1 DW ?MOV DB1,2000H34.12488H,232D7H,31040H四、程序分析题:1、, 402、,3、,4、(1)0AH,0BH,0CH,0DH,0EH,0FH(2)功能不变5、DX中存放的是字符串中"$"字符的个数。6、① BL=7
② 本程序段是可以的。7、① (DA2)=87
② 不可以。8、,。9、4860H,CF=110、或11、①,。②,12、,。13、AX=0FFFFH, CF=114、AL=79H, BL=06, CL=7FH15、AH=60H, AL=35H16、1,0,3,2,5,4,7,6,9,817、(DATA1)=3000H,
(DATA2)=2000H18、(CX)=44AAH, (DX)=44D5H19、(1)该程序段已占有的存储字节数是8个字节。(2)符号名DA4的值为2,符号名DA5的值是0026H。20、(AX)=0012H (BX)=1221H(CX)=0200H21、(1)在以ADRR为起始地址的数组中,查找第一个非0数据。(2)若找到则将第一个非0数据在数组中的偏移量送入RETT单元中;若无非0数据,则将0FFH送入RETT单元中。22、(1)子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否则不变。(2)AL=77H,BL=9AH23、(1)该程序完成的功能是从20H(32)个有符号数中找出最小的数送入RESULT单元中。(2)该程序的循环次数是1FH(31)。24、RESULT+2字存储单元的内容是MAX(X1, X2, … XN)BX= 100H + 2×(COUNT-1)程序循环次数=COUNT25、A. AX=1
E. CX=126、AL=12027、第一条指令是把AX算术左移一位;第二条指令是把DX带进位循环左移一位。28、首先把P乘上2,然后比较2P的高16位与Q的高16位,如果前者小于后者,则把AX置上1,如果前者大于后者,则把AX置上2,如果相等,则比较2P的低16位和Q的低16位,如果前者小于等于后者,则把AX置上2,如果前者大于后者,则把AX置上1。 29、45B0H
L330、 AX=EDCCH
DX=5FFFH31、61H
DF=032、 AH=04H
DL=241实现DL=AX/CX
AX=AX MOD CX33、 ①(A)=5678H
(B)=1234H②SP=2000H34、(AX)=5400H
(BL)=06H
(DX)=2106H35、(BL)=0E4H
(AL)=0DDH36、(AL)=-5或0FBH(BL)=14H或2037、①程序段功能:根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示STRING中第几个字符。②显示器显示字符‘D’38、①(AL)=0,②(AL)=1,③(AL)=-139、CF=40、HCOD和HCOD+1两字节单元内容是1和A。41、,,42、0FCH,0FEH,0FFH43、把小写字母改成大写字母。44、(AL),45、AX=0
BX=EDCCH46、将DX:AX中的双字乘以1647、0AH,0BH,0CH,0DH,0EH,0FH48、1,0,3,2,5,4,7,6,9,8五、程序填空题:1、MOV CX,CUNTADD AL,30H2、该题有错误3、① ②4、①MOV [BX],AL
②MOV AL,AH5、 XOR
ZERO6、CMP AL, [BX]JNZ
LOOP17、(1) ADD AL,[BX](2) MOV AX,SUM(3) LOOP NEXT8、(1) ADD DI,99(2) XCHG AL,[DI](3) INC SI9、LEA SI , FLD
ADD AX,[SI]10、CMP AL ,0
NEG AL11、 ①JE K1或JZ K1②MOV PLW,AX12、 ①CLD
②SUB SI,2或①STD ②ADD DI,213、XOR AL,0FH42JNZ
K114、SHR AL,CLAND AL,0FH15、 XOR AH,AL
ZERO16、MOV [BX] AL,
MOV AH,AL17、 CMP AL,ARRAY[DI]
A118、 MOV CX,CUNT
ADD AL,30H43
欢迎转载:
推荐:    }

我要回帖

更多关于 预分支电缆符号 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信