11284023+实验3+统计学生成绩
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三、统计学生成绩
一、实验目的
1、熟悉汇编语言各种跳转指令的功能和用法。
2、学会用程序流程图来分析和设计分支程序。
3、通过顺序和分支结构来熟悉汇编语言程序设计的主要方法。
4、了解和掌握程序设计过程中算法的选择。
二、实验内容
设有20个学生成绩分别56、78、67、40、87、99、63、51、74、100,90,80,68、88、55、66、84、96、45、73分。编写程序实现统计低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数,并分别存放在s5、s6、s7、s8、s9、s10单元中。
三、算法及截图:
DATA SEGMENT
BUF DB 56,78,67,40,87,99,63,51,74,100,90,80,68,88,55,66,84,96,45,73
S5 DB ?
S6 DB ?
S7 DB ?
S8 DB ?
S9 DB ?
S10 DB ?
COUNT EQU $-BUF
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,0
MOV AH,0
MOV BL,0
MOV BH,0
MOV CL,0
MOV CH,0
LEA SI,BUF;目标地址传送指令:将一个近地址指针写入到指定的寄存器。将存储器中BUF所指的地址传送给S1
LOPA: CMP BUF[SI],3CH
;
JNAE L1 ;BUF[S1]<=3CH
JAE L2 ;BUF[S1]>3CH
L1: INC AL
;加1指令INC
指令功能目标操作数AL+1
INC指令只有1个操作数,它将指定的操作数的内容加1,再将结果送回到该操作数。INC 指令将影响SF,AF,ZF,PF,OF标志位,但是不影响CF标志位。
MOV S5,AL
JMP LOPB
LOPB: INC SI
CMP SI,COUNT-7
JBE LOPA
JMP EXIT
L2: CMP BUF[SI],46H
JNAE L3
JAE L4
L3: INC AH
MOV S6,AH
JMP LOPB
L4: CMP BUF[SI],50H
JNAE L5
JAE L6
L5: INC BL
MOV S7,BL
JMP LOPB
L6: CMP BUF[SI],5AH
JNAE L7
JAE L8
L7: INC BH
MOV S8,BH
JMP LOPB
L8: CMP BUF[SI],64H
JNAE L9
JAE L10
L9: INC CL
MOV S9,CL
JMP LOPB
L10: INC CH
MOV S10,CH
JMP LOPB
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
四实验步骤
1、设计编写代码.
2、在EDIT或其它编辑方式下输入源程序,并以XXX.ASM名保存。
3、用MASM 文件汇编源程序,C>MASM XXX; 如有错误,回到第一步,如没错误,到第
三步.
4、用LINK连接程序,C>LINK XXX; 形成XXX.EXE文件。
5、在DEBUG环境下运行调试程序:C> DEBUG XXX.EXE回车,使用U命令反汇编自己
编写的程序,查找到断点地址,用G命令使程序执行到完成初始化的功能;此时使用D 命令查看数据段的内容,是否有学生的分数并查看s5、s6、s7、s8、s9、s10字节变量的地址及内容。然后查找程序功能结束的命令对应的断点地址,用G命令使程序运行到断点;此时再使用D命令查看存储各分数段的学生人数是否正确。如正确,调试结束;
否则,从新单步调试查找错误。再从第一步修改源程序开始。
五、实验总结
通过本次实验,我熟悉了汇编语言各种跳转指令的功能和用法。学会用程序流程图来分析和设计分支程序。通过顺序和分支结构来熟悉汇编语言程序设计的主要方法。了解和掌握了程序设计过程中算法的选择。
六、思考题
1、请问存放学生分数的变量物理地址是什么?
0000H到0013H
0014,0015,0016,0017,0018,0019
s1对应的内存是0014,后面依次为0015,0016…0019:
2、请问各分数段的变量地址是多少?
0014,0015,0016,0017,0018,0019
3、如果想在屏幕上显示结果:
在debug 里输入指令D 0014 0019 就会显示各组的count。