实验九综合程序设计实验报告
通信0704 070900813 韩一帆
一.实验目的:
1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。
2、掌握综合程序的编制及调试方法。
二.实验内容:
设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。
试编制一个子程序,统计低于60分,60~69分,70~79分,80~89分,90~99分和100分的人数,并输出显示统计结果。
程序代码:
DA TA SEGMENT
SCORE DB 76,69,84,90,73,88,99,63,100,80
COUNT DW 10
NUMBER1 DW 0
NUMBER2 DW 0
NUMBER3 DW 0
NUMBER4 DW 0
NUMBER5 DW 0
NUMBER6 DW 0
STRING1 DB 'BAD:$'
STRING2 DB 'LOW:$'
STRING3 DB 'OK:$'
STRING4 DB 'HIGH:$'
STRING5 DB 'GOOD:$'
STRING6 DB 'PERFECT:$'
RESULT DB 10 DUP(?)
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA
MAIN:PUSH DS
XOR AX,AX
MOV AX,DATA
MOV DS,AX
LEA SI,SCORE
MOV CX,COUNT
C:CMP BYTE PTR[SI],60
JL BAD
CMP BYTE PTR[SI],70
JL LOW
CMP BYTE PTR[SI],80
JL OK
CMP BYTE PTR[SI],90
JL HIGH
CMP BYTE PTR[SI],100
JL GOOD
CMP BYTE PTR[SI],100
JE PERFECT
BAD:INC NUMBER1
INC SI
LOOP C
JMP OVER
LOW:INC NUMBER2
INC SI
LOOP C
JMP OVER
OK:INC NUMBER3
INC SI
LOOP C
JMP OVER
HIGH:INC NUMBER4
INC SI
LOOP C
JMP OVER
GOOD:INC NUMBER5
INC SI
LOOP C
JMP OVER
PERFECT:INC NUMBER6
INC SI
LOOP C
JMP OVER
OVER:MOV DX,OFFSET STRING1 CALL OUTPUT1
LEA SI,NUMBER1
CALL OUTPUT2
MOV DX,OFFSET STRING2 CALL OUTPUT1
LEA SI,NUMBER2
CALL OUTPUT2
MOV DX,OFFSET STRING3 CALL OUTPUT1
LEA SI,NUMBER3
CALL OUTPUT2
MOV DX,OFFSET STRING4 CALL OUTPUT1
LEA SI,NUMBER4
CALL OUTPUT2
MOV DX,OFFSET STRING5
CALL OUTPUT1
LEA SI,NUMBER5
CALL OUTPUT2
MOV DX,OFFSET STRING6 CALL OUTPUT1
LEA SI,NUMBER6
CALL OUTPUT2
MOV AH,01H
INT 21H
OUTPUT1 PROC NEAR MOV AH,09H
INT 21H
RET
OUTPUT1 ENDP OUTPUT2 PROC NEAR XOR AX,AX
XOR BL,BL
LEA DI,RESULT
MOV AX,[SI]
MOV BL,64H
DIV BL
ADD AL,30H
MOV BYTE PTR[DI],AL INC DI
XOR AL,AL
XCHG AL,AH
MOV BL,0AH
DIV BL
ADD AL,30H
MOV BYTE PTR[DI],AL INC DI
ADD AH,30H
MOV BYTE PTR[DI],AH INC DI
MOV BYTE PTR[DI],','
INC DI
MOV BYTE PTR[DI],'$' MOV DX,OFFSET RESULT MOV AH,09H
INT 21H
RET
OUTPUT2 ENDP
CODE ENDS
END MAIN
运行结果:
BAD:000,LOW:002,OK:002,HIGH:003,GOOD:002,PREFECT:001,
三.实验心得
通过这次实验让我掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。
同时掌握综合程序的编制及调试方法。