编制一个程序,其功能是:计算内存中连续存放的20个字节无符号数据的相邻两个数据之间的和,并找出和的最大值,和的最大值存放在结果的最后一个字单元,和为字数据。

例如: 内存中有:20H,04H,58H,34H,35H,4DH……, 则结果为:0024H,008CH,0082H…… 部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。 请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要—条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。 【试题程序】 TRN OAD:FAR,SAVE:FAR N EQU 10 SSEG SEGMENT TACK B 256 DUP () SSEG NDS DSEG EGMENT SOURCE DB N*2 DUP () RESULT DW N+1 DUP (0) NAME0 DB 'INPUT.DAT',0 NAME1 DB 'OUTPUT.DAT',0 DSEG DS CSEG EGMENT SSUME CS:CSEG,DS:DSEG,SS:SSEG START PROC FAR USH S OR AX,AX USH X OV AX,DSEG OV DS,AX EA DX,SOURCE EA SI,NAME0 OV CX,N*2 ALL GAD ; ******** BEGIN ******** EA SI, SOURCE EA DI,RESULT OV CX,N AGAIN0: (1) OV AL,[SI] DD AL,[SI+1] DC AH,0 OV [DI],AX DD SI, (2) (3) OOP GAIN0 OV BX,N-1 OV SI,OFFSET RESULT OV AX,[SI] AGAIN1: ADD SI, 2 MP AX,[SI] (4) OV AX,[SI] NEXT: DEC BX NZ AGAIN1 (5) ; ******** END ******** EA DX,RESULT EA SI,NAME1 OV CX,N+1 ALL AVE ET START ENDP CSEG ENDS END START

时间:2023-09-29 14:10:28

相似题目