汇编语言练习题及习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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]

相关文档
最新文档