试题要求如下: 请编制程序,其功能是:统计20个学生成绩中得分在100~90,89~80,79~70、69~ 60和低于60分的人数,并计算20个学生的平均成绩(取整数),结果依次存放在指定的区域内。 例如: 内存中有5个分数:50H,40H,5EH,64H,48H 结果为 02H,01H,01H,01H,00H,52H(平均成绩) 部分给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算的结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。补充BEGIN和END之间已给出的源程序使其完整(空白己用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序进行汇编,并与IO.OBJ链接产生执行文件,最终运行程序产生结果。调试中发现整个程序中存在错误之处,请加以修改。 试题程序: EXTRN LOAD: FAR, SAVE: FAR N EQU 20 L EQU 5 DATA SEGMENT SOURCE DB N DUP(?) RESULT DB N+1DUP(0) NAME0 DB 'INPUT 1.DAT', 0 NAME1 DB 'OUTPUT1.DAT', 0 DATA ENDS SSEG SEGMENT STACK DB 256DUP (?) SSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, SS: SSEG, DS: DATA START PROC FAR PUSH DS XOR AX, AX PUSH AX MOV AX, DATA MOV DS, AX LEA DX, SOURCE ;数据区起始地址 LEA SI, NAME0 ;原始数据文件名 MOV CX, N ;字节数 CALL LOAD ;从'INPUT1.DAT'中读取数据 ; **** BEGIN **** LEA SI, SOURCE LEA DI, RESULT XOR BX, BX (1) MOV CX, N GOON: LODSB (2) ADD BX, AX (3) JAE P1 CMP AL, 80 JAE P2 CMP AL, 70 JAE P3 CMP AL, 60 JAE P4 INC (4) (5) P4: INC BYTE PTR[DI+3] JMP NEXT P3: INC BYTE PTR[DI+2] JMP NEXT P2: INC BYTE&n