【求助汇编高手】明天函授汇编考试,高手帮忙完成,3Q
汇编语言复习题.rar
(14.97 KB)
1.十六进制数88H,可表示成下面几种形式,请找出错误的表示( )。 A. 无符号十进制数136 B. 带符号十进制数-120 C. 压缩型BCD码十进制数88 D. 8位二进制数-8的补码表示
2.指令指针寄存器是( )。 A. IP B. SP C. BP D. PSW
3.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是( )。
A. MOV AL,00H B. AND AL,00H C. XOR AL,AL D. SUB AL,AL
4.下列指令执行后总是使CF=0,OF=0的是( )。
A. AND B. NEG C. NOT D. INC
5.完成同指令XCHG AX,BX相同功能的指令或指令序列是( )。
A. MOV AX,BX B. MOV BX,AX C. PUSH AX POP BX D. MOV CX,AX MOV AX,BX MOV BX,CX
6.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是( )。
A. CX=0且ZF=0 B. CX=0且ZF=1 C. CX=0或ZF=0 D. CX=0或ZF=1
7.下面指令中,合理而有意义的指令是( )。
A. REP LODSB B. REP SCASB C. REP CMPSB D. REP MOVSB
8.下面的数据传送指令中,错误的操作是( )。 A. MOV SS:[BX+DI],1000H B. MOV DX,1000H C. MOV WORD PTR[BX],1000H D. MOV DS,2000H 9.下面指令执行后,变量DAB中的内容是( )。 DAW DW 2A05H DAB DB 0FAH : MOV AL,BYTE PRT DAW SUB DAB,AL A. 0DAH B. 0FAH C. 0F5H D. 0D0H 10.执行下列指令后,正确的结果是( )。 MOV AL,100 MOV BL,-2 A. AL=100H BL=02H B. AL=64H BL=0FEH C. AL=64H BL=82H D. AL=100H BL=0FEH 11.设数据段中已有: DA1 DB 12H,34H DA2 DW 56H,78H 下面有语法错误的语句是( )。 A. ADD AX, DA2 B. MOV DA1+1,AX C. MOV BYTE PTR DA2+1,AL D. MOV WORD PTR DA1+1,AX 12.实现将DX:AX中存放的32位数扩大四倍,正确的程序段是( )。
A. SHL AX,2 B. RCL AX,2
ROL DX,2 SHL DX,2
C. MOV CX,2
LOP:SHL AX,1 D. SHL AX,1
RCL DX,1 SHL AX,1
LOOP LOP RCL DX,1
RCL DX,1
13.当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是( )。 A. JLE B. JNL C. JNLE D. JL 14.下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,
横线处的指令应为( )。 TEST BH,01H _________K1 A. JNE B. JZ C. JS D. JC 15.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是( )。 A. TEST BL,4FH JZ NEXT B. XOR BL,4FH JZ NEXT C. AND BL,4FH JZ NEXT D. OR BL,4FH JZ NEXT
十六进制数88H,可表示成下面几种形式,请找出错误的表示( )。
(A) 无符号十进制数136 (B) 带符号十进制数 -120
(C) 压缩型BCD码十进制数88 (D) 8位二进制数 -8的补码表示
指令指针寄存器是( )。
(A) IP (B) SP (C) BP (D) BX
若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )
(A) 1400H (B) 77F8H (C) 0000H (D) 0FFFFH
完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是( )。
(A) MOV AL,00H (B) AND AL,00H
(C) XOR AL,AL (D) SUB AL,AL
下列指令执行后总是使CF=0,OF=0的是( )。
(A) AND (B) NEG (C) NOT (D) INC
在下列语句中,BUFFER称为( )
BUFFER DB 01H,0AH
(A) 符号 (B) 变量 (C) 助记符 (D) 标号
DATA SEGMENT
TA1 DW 0102H,0304H,0506H
TA2 DB 02H,03H,04H
MOV BX,DS:[0006H]
AND BX,0FFH
OR BH,[BX]
上述指令序列运行后,BX的内容是( )。
(A) 0605H (B) 0402H (C) 0606H (D) 0204H
当一个带符号数大于0FBH时程序转移, 需选用的条件转移指令是( )。
(A) JLE (B) JNL (C) JNLE (D) JL
下面指令序列测试BH中的数是否为奇数, 若为奇数则转移至K1处,横线处的指令应为 ( )
TEST BH,01H
_____K1
(A) JNE (B) JZ (C) JS (D) JC
测试BL寄存器内容是否与数据4FH相等, 若相等则转NEXT处执行,可实现的方法是( )。
(A) TEST BL,4FH
JZ NEXT
(B) XOR BL,4FH
JZ NEXT
(C) AND BL,4FH
JZ NEXT
(D) OR BL,4FH
JZ NEXT
在汇编语言程序中,对END语句的叙述正确的是( )。
(A) END语句是一可执行语句 (B) END语句表示程序执行到此结束
(C) END语句表示源程序到此结束 (D) END语句在汇编后要产生机器码
下面的数据传送指令中,错误的操作是( )。
(A) MOV SS:[BX+DI],1000H (B) MOV DX,1000H
(C) MOV WORD PTR[BX],1000H (D) MOV DS,2000H
下面指令执行后,变量DAB中的内容是( )。
DAW DW 2A05H
DAB DB 0FAH
MOV AL,BYTE PRT DAW
SUB DAB,AL
(A) 0DAH (B) 0FAH (C) 0F5H (D) 0D0H
串操作指令中,目标串操作数的段地址一定在( )寄存器中。
(A) CS (B) SS (C) DS (D) ES
设数据段中已有: 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
二、填空题
1、若要将所有数据及代码都放在一个段内,应建立 存储模型。
2、操作数:ES:TABLE[DI]、FEES[BX*2]、MSAK[SI][ BX]分别采用 、 、 寻址方式。 3、如果在宏定义体设置局部标号,应使用 伪操作以避免在宏 展开时出现标号的多重定义。4、设(CS)=2A31H,(DS)=9300H,(SS)=25F0H,(BP)=0131H,(SI)=0110H,
(DI)=0102H,则指令MOV AX,[BP+SI+8]的源操作数有效地址为 ,
物理地址为 。 5、设(AX)=1000H,(BX)=2340H,则在执行了指令CMP AX,BX后,CF标志值为 ,ZF标志值为 。
6、n位二进制补码数的表数范围为: 。 7、有数据定义如下: V1 DB 4 DUP(2),2 COUNT EQU 10 V2 DD COUNT DUP(8,5 DUP(?))
则:为变量V1分配 个字节存贮空间;V2分配 个字节存贮空间.
8、子程序之间传递参数可使寄存器 、 和 三种方式。
9、当端口号≥256时,使用IN或OUT指令,必须先将端口号放到 寄存器。
1. 在 8086/8088 汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是 ______ 。
2. 通常所说的计算机系统包括 ________ 和 ________ 两大部分。
3.8086/8088 存储器分四个段,这四个段的段名所对应的段寄存器分别是 ________ 、 ________ 、 ________ 、 ________ 。
4. 现有 AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(31201H)=02H,
(31202H)=40H, 请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位 ZF 、 CF 的值。
A.ADD AX , 1200H ;问 AX=________H ZF=________
B.SUB AX , BX ;问 AX=________H ZF=________
C.MOV AX ,[ BX ] ; 问 AX=________H
D.NEG WORD PTR [ 1200H ];问 (31200H)=________H ZF=________
三、简答题
1.在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如: PUSH AX\ PUSH BX \ 保护现场 PUSH CX / PUSH DX/ : }恢复现场 试写出恢复现场时的指令序列。
2.完成下列操作,选用什么指令: (1)将AX的内容,减去0520H和上次运算的借位;
(2)将变量名TABL的段地址送AX;
3.D1 DB 20H DUP(?) D2 DW D1 请写出用一条指令实现取D1的偏移地址=>SI中的三种方法。
试根据以下要求,分别写出相应的汇编语言指令。
把AX寄存器和BX寄存器的内容相加,结果存入AX中。
用BX和SI的基址变址寻址方式,把存储器中的一个字节与DL的内容相加,并把结果送回DL中。
把数5EH与AH内容相加,结果送回AH中。
2.对于下面的数据定义,三条MOV指令分别汇编成什么?
TAB1 DW 10 DUP(?)
TAB2 DB 10 DUP(?)
TAB3 DB ‘1234’
┇
MOV AX,LENGTH TAB1
MOV BL,LENGTH TAB2
MOV CL,LENGTH TAB3
3.完成下列操作,分别选用什么指令:
将AX的内容,减去0520H,和上次运算的借位;
将变量名TABL的段地址送AX;
将变量名TABL的偏移地址送AX。
四、程序分析题
1. A DW 1234H B DW 5678H : PUSH A PUSH B POP A POP B 试回答:(1). 上述程序段执行后(A)= ,(B)=
(2). 设执行前SP=200H,执行后SP=
2.现有下列程序段: 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)= (BL)= (DX)=
3.STRING DB ‘ABCDEFGHIJ' :
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)上述程序段的功能是什么?
(2)如从键盘输入字符‘4',程序段有什么结果?
1. 已知(DS)=5000H,(BX)=0100H,(DI)=0002H,(50100H)=45H,(50101H)=68H,(50102H)=0A1H,(50103H)=14H
先执行MOV AX,[100H], (AX)= ;
再执行ADD AX,[BX+DI], (AX)= ,CF= ,OF= 。
2. 已知 (AX)=3200H, (DX)=0A000H,执行下列程序段:
NOT AX
NOT DX
ADD AX , 1
ADC DX , 0
问题:
(1) 程序执行后,(AX)= (DX)=
(2) 程序功能是什么?
3. 有下列程序段
MOV AX,10
ADD AX,AX
MOV BX,AX
MOV CL,2
SHL AX,CL
ADD AX,BX
上述程序段执行后(AX)= ,(BX)=
五、程序填空题
1.设AX,BX中的数一个为正数,一个为负数,下面程序段完成将
正数送到PLW单元中存放,请将程序中所缺指令语句补上。 TEST AX,8000H MOV PLW,BX JMP DONE K1: DONE:
以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。
BUF DB 5,6,7,58H,62,45H,127,……
COUNT EQU $-BUF
MAX DB ?
┇
MOV BX,OFFSET BUF
MOV CX,COUNT-1
MOV AL,[BX]
INC BX
LOP1: ________________
JAE NEXT
MOV AL,[BX]
NEXT: INC BX
_________________
MOV MAX,AL
六、编程题
试编写一程序,求出首地址为DATA的10个字数组中最小偶数,并把它存放在AX中。
试编写一程序,求出首地址为DATA的10个字数组中最小偶数,并把它存放在AX中。