汇编语言练习题及习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择
1、用户为了解决自己的问题,用汇编语言所编写的程序,称为___________。
A 、目标程序B、源程序C、可执行程序D、汇编程序
2、无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是___________。
A、ADD BH,01H
B、OR BH,01H
C、XOR BH,01H
D、TEST BH,01H
3、设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
4、设AX=1000H
NEG AX
NOT AX
执行上述指令后,正确的结果是___________。
A、AX=1001H
B、AX=0FFFH
C、AX=1000H
D、AX=0111H
5、CBW指令的功能是___________。
A、把源操作数的符号位扩展到目的操作数中
B、把AL中的符号位扩展到AH中
C、把AH中的符号位扩展到AL中
D、把AX中的符号位扩展到DX中
6、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是
A、指令XOR AX,AX执行后,AX内容不变,但设置了标志位
B、指令OR DX,1000H执行后,将DX最高位置1,其余各位置0
C、指令AND AX,OFH执行后,分离出AL低四位
D、NOT AX,执行后,将AX清0
7、执行下列指令序列后,正确的结果是___________。
MOV AL,81H
ADD AL,AL
ADC AL,AL
A、AL=05H
B、AL=204H
C、AL=04H
D、AL=205H
4、TEST DL,55H
JE NEXT
….
NEXT:……
上述程序段,执行JE指令时能产生转移的情况是。
A、DL>55H
B、DL<55H
C、DL=55H
D、DL中第0、2、4、6位均为0
5、设CL=05H,要获得CL=0AH,可选用的指令是。
A、XOR CL,0FH
B、NOT CL
C、OR CL,0AH
D、AND CL,0FH
填空
2、与指令LEA DI,AV等效的指令是____________。
5、如JMP指令采用段间直接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是________,而后两个字节存放的是________。
6、当主程序和子程序不在同一个代码段时,主程序调用子程序是远调用,这时系统自动将__________和__________值作为断点依次入栈。
7、VAR1 DW 10H DUP(?)语句实现留空___________个字节单元。
2、假设存储器中从7462H单元开始的四个相邻字节单元中的内容依次是32H,46H,52H,0FEH,则存放字数据0FE52H的字地址是______________。
3、设CF=1,AX=8000H,执行ROR AX,1后,AX=______________,CF=______________。
三、问答题
1、条件转移指令的判断条件,除标志位PF外还有哪几个标志位?
2、DATl DB 1,2,3,4
DAT2 DW 3412H,5678H
┆
MOV AX,DATl+1;将DATl+1字单元内容送入AX中
MOV BL,DAT2+1;将DAT2+1字节单元内容送入BL中
已知上述两条MOV语句有语法错误,请根据注释字段的要求将其改正(分别用一条语句改正)。
3、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如:
PUSH AX\
PUSH BX \ 保护现场
PUSH CX /
PUSH DX/
┆}恢复现场
试写出恢复现场时的指令序列。
4、完成下列操作,选用什么指令:
(1)将AX的内容,减去0520H及上次运算的借位;
(2)将变量名TABL的段基址送AX;
5、指出下面的程序段的错误之处,并改正。
CRAY PROC
PUSH AX
ADD AX,BX
RET
CRAY ENDP
四、程序填空题
1、在NUMW单元存放有一个0-65535范围内的整数,将该数除以500,商和余数分别存入QU1和REM单元,请在横线处各填上一条指令完善该程序。
┇
MOV AX, NUMW
_____________
XOR DX, DX
DIV B X
MOV QUI, AX
_____________
2、某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试在横线处填上适当的一条指令。
STRING DB‘COMPUTER’,‘$’
┇
MOV BX,0FFSET STRING
LOP:MOV DL,[BX]
MOV AH,02H
INT 21H
_______________
_______________
JNE LOP
3、下面程序段是判AL和BL中的数据是否同号,若是,则把AL中的数据求补并送到AH中,否则0→AH。横线处填入适当指令(每处仅填一条指令)。
____________
JNS K
MOV AH,0
JMP END0
K:____________
MOV AH,AL
END0:……
4、从2000H单元开始,存放着14H个无符号字节数据,找出最大一个,并将其存在2000H 中。请在横线处各填一条指令。
GATMAX:MOV BX,2000H
MOV AL,[BX]
MOV CX,14H
P1:____________
CMP AL,[BX]
JAE P2
MOV AL,[BX]
P2:____________
JNZ P1
MOV BX,2000H
MOV [BX],AL
…
五、读程序,写出程序的功能和运行结果
1、已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么?
MOV CX,10
LEA BX,BUF
K2:MOV AL,[BX]