汇编语言程序设计 下载本文

内容发布更新时间 : 2024/11/17 7:25:16星期一 下面是文章的全部内容请认真阅读。

3、 ;

4、 ;

5、 。

参考答案: MOV AX,DATA

MOV DS,AX MOV AX,EXTRA MOV ES,AX

MOV CX,17 只要写出以上5条指令就给分,每条指令1分。 评分标准:指令中没有写出逗号、没有写对相应数据、写错操作码都视为错误答案。

19. 已知主程序和子程序之间的调用如下:

STACK SEGMENT

DB 100 DUP(0)

STACK ENDS CODE1 SEGMENT

ASSUME CS:CODE1,SS:STACK

BEG: ?

MOV AX, 0A3BH MOV CX, 1234H

CALL FAR PTR AA ;断点(IP)

=1110H, (CS)=0200H

?

CODE1 ENDS CODE2 SEGMENT

ASSUME CS:CODE2

AA PROC FAR

PUSH AX PUSH CX BB: ?

RET AA ENDP CODE2 ENDS END BEG

画出执行到标号BB时,堆栈的情况图。

参考答案: 1234H 0A3BH 1110H 0200H 20. 寄存器的二进制数用十六进制数的形式在屏幕上显示出来。

参考答案:

1、 CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE START:

PUSH DS SUB AX,AX PUSH AX

MOV CH,4 ROTATE:MOV CL,4

ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINTIT

ADD AL,07H PRINTIT:MOV DL,AL

MOV AH,2 INT 21H

DEC CH JNZ ROTATE RET MAIN ENDP CODE ENDS

END START

21. 写出一段子程序,完成输出空行的功能。空出的行数在AX寄存器中。

参考答案:

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE START:

PUSH DS SUB AX,AX PUSH AX MOV AX,5 OUTPUT:PUSH AX CALL DISP

POP AX

DEC AX

22. 假定(DS)=2000H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)

=0010H则

MOV AX,[BX+10]的寻址方式

是 ;操作数的物理地址是 。

MOV AX,[BP][SI]的寻址方式

是 ;操作数的物理地址是 。

参考答案:

寄存器相对寻址 物理地址:20110H

基址变址寻址 物理地址:150B0H

23. 如果TABLE为数据段中0032H单元的符号名,其中存放的内容为1234H,则

执行MOV AX,TABLE 后AX寄存器的内容是 ;执行LEA AX,TABLE后AX寄存器的内容是 。

参考答案:

1234H 0032H

24. 如果TABLE为数据段中0032H单元的符号名,其中存放的内容为1234H,则

执行MOV AX,TABLE 后AX寄存器的内容是 ;执行LEA AX,TABLE后AX寄存器的内容是 。

参考答案:

1234H 0032H

25. 1、汇编语言程序上机操作的步骤

是 ;

; 。

参考答案:

用编辑器编写汇编源程序ASM文件 用MASM命令编译ASM文件为OBJ文件 用LINK命令连接OBJ文件为EXE文件

在DOS下运行程序查看结果或者进入DEBUG查看结果

26. 假设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 EXIT

L2: MOV AX,2 EXIT:… 分析以上程序段。写出该程序段实现的功

能: 。

参考答案:

程序功能: AX =1 (2P>Q)

=2 (2P≤Q) 用语言描述也正确。

27.

MOV CL,4

SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL

分析以上程序段。写出该程序段实现的功

能: 。

参考答案:

程序功能:把DX AX构成的双精度数左移四位

28. 以下程序段实现从键盘输入一个十进制数并转换成二进制数,试分析程序并

填写恰当的指令使程序完整。

MOV BX,0

NEWCHAR: INT 21H SUB AL,30H JL EXIT

CMP AL,9D JG EXIT

XCHG AX,BX MOV CX,10D

XCHG AX,BX ADD BX,AX JMP NEWCHAR

EXIT:RET

参考答案:

MOV AH,1

CBW

MUL CX

29. 下列程序段实现计算(V-(X*Y+Z-540))/X,并把结果的商存入AX,余数

存入DX,其中X,Y,Z,V都是16位带符号数,已经分别装入了X,Y,Z,V单元中。试分析程序并填写恰当的指令使程序完整。

MOV AX,X IMUL Y

MOV CX,AX MOV BX,DX MOV AX,Z CWD

ADD CX,AX

SUB CX,540

MOV AX,V

SUB AX,CX SBB DX,BX IDIV X

参考答案:

ADC BX,DX

SBB DX,0

CWD

平分标准:有写错指令操作码的不给分。

30. 在ADDR单元中存放着数据Y,试编写一程序把Y中1的个数存入COUNT单元

中。

参考答案:

DATA SEGMENT ADDR DW Y COUNT DW ?

DATA ENDS CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE ,DS:DATA