1、PC技术机试模拟试卷 8及答案与解析 一、程序设计题 1 试题要求如下: 请编制程序,其功能是:统计 20个学生成绩中得分在 100 90, 89 80, 7970、 69 60和低于 60分的人数,并计算 20个学生的平均成绩 (取整数 ),结果依次存放在指定的区域内。 例如: 内存中有 5个分数: 50H, 40H, 5EH, 64H, 48H 结果为 02H, 01H, 01H, 01H, 00H, 52H(平均成绩 ) 部分程序己给出,其中原始数据由过程 LOAD从文件 INPUT1.DAT中读入SOURCE开始的内存单元中,运算的结果要求从 RESULT开始存放,由过程SAVE保存到
2、文件 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.D
3、AT, 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
4、* 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 PTRDI+3 JMP NEXT P3: INC BYTE PTRDI+2 JMP NEXT P2: INC BYTE PTRDI+I JMP NEXT P1: INC BYTE PTRDI NEXT: LOOP GOON MOV AX, BX MOV
5、 DL, (6) DIV DL MOV DI+5, AL ; * END * LEA DX, RESULT ; 结果数据区首址 LEA SI, NAME1 ; 结果文件名 MOV CX, L+1 ; 结果字节数 CALL SAVE ; 保存结果到文件 RET START ENDP CODE ENDS END START PC技术机试模拟试卷 8答案与解析 一、程序设计题 1 【正确答案】 (1)CLD ; 使 DF=0,在执行串处理指令时可以使地址自动增量 (2) MOV AH, 0 ; 设初值 (3) CMP AL, 90 ; 判断分数在 90 100分之间的个数 (4) BYTE PTRDI+4 ; 设置平均值存储空间 (5) JMP NEXT ; 无条件转移 (6) N ; 计算 20个学生的平均成绩 【试题解析】 程序中 GOON完成的是按题目的要求求出各段的数据, P1、 P2、P3、 P4完成的分别是对各分数段的计数, NEXT是求平均值。