请编制程序PROG1.ASM,其功能是:计算10×3矩阵中每一行元素(八位二进制数)之和,并将其存放在指定的内存区中。例如:内存中有0,0,0,(第1行),1,1,1,(第2行),……,9,9,9(第10行)结果为0000H,0003H,…,001BH部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已经给出的一段源程序使其完整,填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),考生也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果 (无结果或结果不正确者均不得分)。PROG1.ASM文件内容如下:EXTRN LOAD: FAR, SAVE: FARN EQU 30DSEG SEGMENTSOURCE DB N DUP( ? )RESULT DW N/3 DUP(0)I EQU 10J EQU 3NAME0 DB 'INPUT1. DAT' ,0NAME1 DB 'OUTPUT1. DAT' ,0DSEG ENDSSSEG SEGMENT STACKDB 256 DUP(?)SSEG ENDSCSEG SEGMENTASSUME CS: CSEG, SS: SSEG, DS: DSEGSTART PROC FARPUSH DSXOR AX, AXPUSH AXMOV AX, DSEGMOV DS, AXMOV ES, AXLEA DX, SOURCELEA SI, NAMEOMOV CX, NCALL LOAD; * * * BEGIN * * *LEA SI, SOURCELEA DI, RESULTMOV BX, 1LPI: MOV DX,O
请编制程序PROG1.ASM,其功能是:计算10×3矩阵中每一行元素(八位二进制数)之和,并将其存放在指定的内存区中。
例如:
内存中有0,0,0,(第1行),1,1,1,(第2行),……,9,9,9(第10行)
结果为0000H,0003H,…,001BH
部分程序已经给出,其中原始数据由过程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 30
DSEG SEGMENT
SOURCE DB N DUP( ? )
RESULT DW N/3 DUP(0)
I EQU 10
J EQU 3
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, SS: SSEG, DS: DSEG
START PROC FAR
PUSH DS
XOR AX, AX
PUSH AX
MOV AX, DSEG
MOV DS, AX
MOV ES, AX
LEA DX, SOURCE
LEA SI, NAMEO
MOV CX, N
CALL LOAD
; * * * BEGIN * * *
LEA SI, SOURCE
LEA DI, RESULT
MOV BX, 1
LPI: MOV DX,O