试卷详情
-
三级PC技术机试-99
-
[多项选择]请编制程序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
A. PUSH
B. DS
C. XOR
D. AX, AX
E. PUSH
F. AX
G. MOV
H. AX, DSEG
I. MOV
J. DS, AX
K. LEA
L. DX, SOURCE
M. LEA
N. SI, NAME0
O. MOV
P. CX, N
Q. CALL
R. LOAD
S. ;*** BEGIN ***
T. LEA