西南交大网络教育汇编语言程序设计 第三次作业

2019-01-10 11:39

汇编语言程序设计 第三次作业

11. 文件结尾的部分信息就没有被写入磁盘,从而造成写入的文件不完整。

12. 下面的ASCIZ串有什么错误?

PATH_NAME DB ‘C:\\PROGRAMS\\TEST.DAT’

答:

此ASCIZ串的最后少了一个全0字节,应改为: PATH_NAME DB ‘C:\\PROGRAMS\\TEST.DAT’, 0

13. 据定义如下:

X1 DB 10H,100,-1 X2 DW 10H,100,-1 X3 DD ?

COUNT EQU X3-X1

变量COUNT的值是 ,其表示的意义是 。

答: 9 X1和X2两个变量所占内存字节单元的个数。(写为内存单元的个数也正确。如果写为字单元则为错误)

14. 执行指令

MOV AX,0 MOV AL,09H ADD AL,4

若要获得结果AX=0103H,则在ADD指令之后,加一条 指令,若要获得结果AL=13H,在ADD指令之后加一条 指令。

答:

DAA AAA

15. 实现AL中高四位置1的指令为 。

实现AL中高四位取反的指令为 。

答:

OR AL,0F0H XOR AL,0F0H

16. 为中断向量区。

答:

◎最低1K字节 ◎ (0-3FFH) ◎0000开始的1K 字节

以上三个答案都正确

17. X、Y、Z是双精度数,他们分别存放在X、X+2、Y、Y+2、Z、Z+2的内存单元中,高位字存放在高位地址中,低位字存放在低位地址中,下列指令序列实现X+Y+24-Z W。并且用W和W+2单元存放运算结果:

MOV AX,X MOV DX,X+2 ADD AX,Y ADC DX,Y+2 ADD AX,24 SUB AX,Z

SUB DX,Z+2 MOV W,AX MOV W+2,DX

分析以上指令序列,指出程序中出现的错误: ; 。

答:

在ADD和SUB两条指令之间加上 ADC DX,0(仅仅写出这条指令就正确) 把SUB DX,Z+2改成SBB DX,Z+2(仅仅写出这条指令就正确)

DATA SEGMENT

MESS1 DB ‘PERSONAL COMPUTER’ DATA ENDS EXTRA SEGMENT

MESS2 DB 17 DUP(?)

EXTRA ENDS CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE, DS:DATA,ES:EXTRA START: PUSH DS SUB AX,AX PUSH AX LEA SI,MESS1 LEA DI,MESS2 CLD REP MOVSB RET MAIN ENDP CODE ENDS END START

18. 在数据段中有一个字符串,其长度是17,要求把他们传送到附加段中的一个缓冲区。

以上是完整的程序段,请分析主过程,修改主过程中的错误。

1、 ; 2、 ; 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 A

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

答:

1234H 0032H

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

X,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

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


西南交大网络教育汇编语言程序设计 第三次作业.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年山西省高中阶段教育学校招生统一考试化学试题(附答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: