请编制程序PROG1.ASM,其功能是:统计30个学生成绩中得分在100~90、89~80、 79~70、69~60区间以及低于60分的人数,并计算30个学生的平均成绩(取整数),结果依次存入指定的内存区域。 例如: 内存中有10个分数; 5EH,50H,64H,52H,55H,48H,3AH,4AH,40H,42H 结果为:02H,03H,02H,02H,01H,4DH(平均成绩) 部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。 试题程序: EXTRN LOAD:FAR, SAVE:FAR N EQU 30 L EQU 5 DSEG SEGMENT SOURCE DB N DUP(?) RESULT DB N+1 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, SS: SSEG, DS: DSEG 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 XOR BX,BX (l) MOV CX,N GOON: LODSB (2) ADD BX,AX (3) JAE A1 CMP AL,80 JAE A2 CMP AL,70 JAE A3 CMP AL,60 JAE A4 INC (4) (5) A4: INC BYTE PTR [DI+3] JMP NEXT A3: INC BYTE PTR [DI+2] JMP NEXT A2: INC BYTE PTR [DI+I] JMP NEXT A1: INC BYTE PTR [DI] NEXT: LOOP GOON MOV AX,