汇编语言实验报告综合.docx
- 文档编号:17271296
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:13
- 大小:354.94KB
汇编语言实验报告综合.docx
《汇编语言实验报告综合.docx》由会员分享,可在线阅读,更多相关《汇编语言实验报告综合.docx(13页珍藏版)》请在冰点文库上搜索。
汇编语言实验报告综合
西安财经学院信息学院
《汇编语言程序设计》综合报告
学生姓名:
学号:
10051704
班级:
计本1004班
专业:
计算机科学与技术
完成日期:
2013年6月25日
一、目的要求
1.巩固汇编语言的各种指令,并能准确有效地运用;
2.巩固分支语句的编程和调试;
3.巩固循环语句的编程和调试;
4.巩固子程序语句的编写和调用过程;
5.体会汇编语言的整体编程思想,能很好地看懂、理解一段较复杂的程序,并能逐句分析。
二、实验环境
1.硬件环境:
一台微型计算机;
2.软件环境:
windows7;
3.调试环境:
DOSBOX虚拟平台。
三、实验内容
1.题目
设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。
试编制一个子程序,统计60~69分,70~79分,80~89分,90~99分和100分的人数,并输出显示统计结果。
2.分析
十个成绩存放在数据段中,要想将不同成绩段的人数统计出来就必须将所有成绩进行扫描,并且归类时采用相同的方法才可以编写一段程序将所有的成绩进行循环扫描,除此之外,还要将每一次扫描过的成绩记到相应的存放人数的数据段中。
考虑到这两点,且要归类的成绩段长都相等,依次加1,我们就可以将不同的统计段依次加1。
又因为成绩从>=60开始统计,我们可以将成绩除以10(只取商)后再减6,所得的结果分别对应不同的人数统计单元。
人数统计单元初值为0,没扫描到相应的成绩就自动加1,直到所有成绩扫描结束后将统计结果输出。
3.设计思想
以下为本程序的设计流程图:
N
Y
N
Y
四、源程序清单
DATASEGSEGMENT
BUTDB0DH,0AH,'THERESULT$'
GRADEDW76,69,84,90,73,88,99,63,100,80
S6DB0
S7DB0
S8DB0
S9DB0
S10DB0
DATASEGENDS;以上为数据段的定义
CSEGSEGMENT
MAINPROCFAR
ASSUMECS:
CSEG,DS:
DATASEG
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATASEG
MOVDS,AX
MOVCX,10
CALLCOUNT;调用子程序
CALLDISP;调用子程序
MOVAH,1
INT21H
RET
MAINENDP
COUNTPROCNEAR;-----------------------------------------------------------
;子程序结构。
COUNT开始,功能:
扫描所有成绩
;并将结果放入相应统计单元中
MOVSI,0
NEXT:
MOVAX,GRADE[SI]
MOVBL,10
DIVBL
MOVBL,AL
MOVBH,0
SUBBX,6
CMPBX,0;--------------------
JAENEXT1;--------------------选择分支结构
NEXT1:
INCS6[BX]
ADDSI,2
LOOPNEXT;--------------------循环
RET
COUNTENDP;------------------------------------------------------------------------
;子程序COUNT结束
DISPPROCNEAR;--------------------------------------------------------------
;子程序结构。
DISP开始。
功能:
输入统计结果
LEASI,S6
MOVCX,5
LOOP1:
;----------------------------------
MOVDX,OFFSETBUT
MOVAH,9
INT21H
MOVDL,[SI]
ADDDL,30H
MOVAH,2
INT21H
INCSI;------------------------------顺序
LOOPLOOP;--------------------循环
RET
DISPENDP;------------------------------------------------------------------------------------
;子程序DISP结束
MOVAH,4CH
INT21H
CSEGENDS
ENDSTART;程序结束
五、调试分析过程
1.通过编译程序、链接程序分别生成OBJ和EXE文件后,直接运行查看结果如下:
2.反汇编,查看程序的指令,如下所示:
3.单步执行
4.用-d查看数据段内存放的数据:
查看程序的数据段,与内存单元数据段的相对应
5.单步执行
继续单步执行:
第一个成绩扫描完成,开始扫描第二个成绩:
查看第二个成绩扫描结果:
避免冗杂,我们用-g执行剩下的代码,直接看结果:
六、总结
此次实验,相对来说做的时间最长,但实验过程还是比较顺利的。
代码也是通过网络找到后抄在本子上一条一条语句来读的,如果有某些不能理解的,就将正确的程序执行一遍,再将不能理解的地方删掉保存好后再执行一遍,查看两次执行结果的不同,从而判断这条不懂的语句的作用。
而且我也发现这种自己将代码抄写一遍并逐条分析和删掉不懂的语句执行对比完整程序结果的方法在学习汇编语言的过程中时非常实用的,不仅如此,在以后的语言学习中也能够一直应用下去。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 实验 报告 综合