早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

请编制程序,其功能为:内存中连续存放着20个无符号字节数,求它们的和。和值按字的形式存放,此前先

题目

请编制程序,其功能为:内存中连续存放着20个无符号字节数,求它们的和。和值按字的形式存放,此前先按序存放参加运算的20个字节。

例如;

内存中有:01H,02H,03H ……

结果为:01H,02H,03H …… (参加运算的字节),后跟一个字(为前面各字节的和)

部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END之间补充使其完整,完成要求的功能。或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终产生运行结果。

部分程序如下:

;PROG1.ASM

EXTRN LOAD:FAR,SAVE:FAR

N EQU 20

DSEG SEGMENT

SOURCE DW N DUP (?)

RESULT DW N DUP (0)

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DSEG ENDS

SSEG SEGMENT STACK

DB 256 DUP (?)

SSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG, DS:DSEG;SS;SSEG

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX, DSEG

MOV DS,AX

LEA DX,SOURCE

LEA SI,NAME0

MOV CX,N

CALL LOAD

; *** BEGIN ***

LEA SI,SOURCE

LEA DI,RESULT

MOV CX,N

MOV BX,0

NEXT: MOV AL,[SI]

____________

____________

MOV [DI],______

____________

____________

LOOP NEXT

MOV [DI],______

; *** END ***

LEA DX,RESULT

LEA SI,NAME1

MOV CX,N+2

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

参考答案
正确答案:; *** BEGIN *** LEA SI SOURCE LEA DI RESULT MOV CXN MOV BX 0 NEXT: MOV AL [SI] ADD BL AL ; 将 SOURCE 原始数据区中相应的数累加。 ; BL ADC BH 0 ; 将上一条加法指令中产生的进位加入至和 ; 值的高8位BH 中 MOV [DI]AL ; 将 SOURCE 原始数据区中的数存入 ; RESULT 相应单元 INC SI INC DI LOOP NEXT ; (CX)-1 若 (CX)≠0则转移NEXT MOV [DI]BX ; 因最后依次循环中 DI 已加1故BX将紧 ; 跟在这20个数之后存入 ; *** END *** [INPUT1.DAT 中的输入数据]: FFH8OH7FHFOH 14H84H25H7EH3 CH45H FFH80HO1HO2H22HFCHE3HA3h12H01H [输出结果] FF 80 7F F0 14 84 25 7E 3C 45 FF 80 01 02 22 FC 113 A3 12 01 E3 08
; *** BEGIN *** LEA SI, SOURCE LEA DI, RESULT MOV CX,N MOV BX, 0 NEXT: MOV AL, [SI] ADD BL, AL ; 将 SOURCE 原始数据区中相应的数累加。 ; BL ADC BH, 0 ; 将上一条加法指令中产生的进位加入至和 ; 值的高8位BH 中 MOV [DI],AL ; 将 SOURCE 原始数据区中的数存入 ; RESULT 相应单元 INC SI INC DI LOOP NEXT ; (CX)-1, 若 (CX)≠0,则转移NEXT MOV [DI],BX ; 因最后依次循环中 DI 已加1,故BX将紧 ; 跟在这20个数之后存入 ; *** END *** [INPUT1.DAT 中的输入数据]: FFH,8OH,7FH,FOH, 14H,84H,25H,7EH,3 CH,45H, FFH,80H,O1H,O2H,22H,FCH,E3H,A3H,12H,01H [输出结果] FF 80 7F F0 14 84 25 7E 3C 45 FF 80 01 02 22 FC 113 A3 12 01 E3 08