- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
青 岛 理 工 大 学
课程实验报告
课程名称
汇编语言程序设计
班级
计算122
实验日期
2014.10.30
姓名
郝兴明
学号
201207051
实验成绩
实验名称
循环结构程序设计
实
验
目
的
及
要
求
1.掌握循环结构程序设计的基本方法
2.掌握重复控制指令的使用
3.熟练掌握DEBUG工具的使用
实
验
环
境
DOSBOX WIN 8.1
MASM.EXE
LINK.EXE
DEBUG.EXE
实
验
内
容
1.内存BUFF单元开始的存储区连续存放30个学生的某科分数,编写程序统计100,90~99,80~89,70~79,60~69和59以下分数段的人数,并把结果存放在RLT开始的单元。
2.编写程序,将一串凌乱的字母按ASCII码从小到大的顺序排列并在屏幕上输出。
算
法
描
述
及
实
验
步
骤
对于给定的30个学生的成绩,依次按照是否等于100,大于等于90小于100,大于等于80小于90,大于等于70小于80,大于等于60小于70,小于60进行判断,并在对应的存放数量的单元(RLT[0],RLT[1],RLT[2],RLT[3],RLT[4],RLT[5])加1.
对给定的一串字母,按照冒泡排序的方法进行排序即可,对冒泡排序在此不多做论述
调
试
过
程
及
实
验
结
果
测试值2 DUP(45),4 DUP(65),3 DUP(75),6 DUP(85),7 DUP(95),8 DUP(100)的结果
反汇编
单步调试
与100比较
与90比较
与80比较
与70比较
与60比较
测试数据NEAVSSMEWOUasdflsaeroimda的结果
反汇编
单步调试
控制外层循环
控制内层循环
字母间比较
总
结
通过本次实验,对于循环有了更深的理解,不管是单重循环还是多重循环都有了进一步的理解,并且对循环程序编写的方法更加熟练,只有投入其中才能真正的理解其中的知识和其中的奥妙,只有多加练习才能把一门学科变为自己的一种工具,好好学习,天天向上。
附
录
1.SSEG SEGMENT STACK
STK DB 500 DUP(0)
SSEG ENDS
DSEG SEGMENT
BUFF DB 2 DUP(45),3 DUP(65),4 DUP(75),6 DUP(85),7 DUP(95),8 DUP(100)
RLT DB 6 DUP(0)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
ASSUME SS:SSEG
BEGIN: MOV AX,DSEG
MOV DS,AX
LEA SI,BUFF
MOV CX,30
AG: CMP CX,0
JE PRINT
MOV AL,[SI]
CMP AL,100
JB NEXT1
INC SI
INC RLT[0]
DEC CX
JMP AG
NEXT1: CMP AL,90
JB NEXT2
INC SI
INC RLT[1]
DEC CX
JMP AG
NEXT2: CMP AL,80
JB NEXT3
INC SI
INC RLT[2]
DEC CX
JMP AG
NEXT3: CMP AL,70
JB NEXT4
INC SI
INC RLT[3]
DEC CX
JMP AG
NEXT4: CMP AL,60
JB NEXT5
INC SI
INC RLT[4]
DEC CX
JMP AG
NEXT5: INC RLT[5]
INC SI
DEC CX
JMP AG
PRINT: ADD RLT[0],30H
MOV DL,RLT
MOV AH,02H
INT 21H
ADD RLT[1],30H
MOV DL,RLT[1]
MOV AH,02H
INT 21H
ADD RLT[2],30H
MOV DL,RLT[2]
MOV AH,02H
INT 21H
ADD RLT[3],30H
MOV DL,RLT[3]
MOV AH,02H
INT 21H
ADD RLT[4],30H
MOV DL,RLT[4]
MOV AH,02H
INT 21H
ADD RLT[5],30H
MOV DL,RLT[5]
MOV AH,02H
INT 21H
MOV AX,4C00H
INT 21H
CSEG ENDS
END BEGIN
2.SSEG SEGMENT STACK
STK DB 500 DUP(0)
SSEG ENDS
DSEG SEGMENT
RT DB NEAVSSMEWOUasdflsaeroimda
COUNT EQU $-RT
DSEG ENDS
C
文档评论(0)