汇编实验七子程序设计

汇编实验七子程序设计

ID:38746868

大小:904.01 KB

页数:5页

时间:2019-06-18

汇编实验七子程序设计_第1页
汇编实验七子程序设计_第2页
汇编实验七子程序设计_第3页
汇编实验七子程序设计_第4页
汇编实验七子程序设计_第5页
资源描述:

《汇编实验七子程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验报告──学年第学期实验课程汇编语言学生姓名123实验项目子程序设计学院计算机科学技术实验性质专业选修课班级学号实验地点同组人数1第组实验日期第周星期第节成绩4环境参数Dosbox-0.74Masm5.0一、实验目的及要求二、实验原理、实验内容三、实验仪器设备及材料四、操作方法与实验步骤五、实验数据记录及处理六、实验结果分析及讨论一、实验目的:1.掌握子程序设计方法。2.掌握调用程序与子程序间参数传递的几种方法。二、实验任务1.编制一个子程序把一个十六位二进制数用十六进制形式在屏幕上显示出来,采用堆栈方法传递这个二进制数,并用一个主程序验证它。源代码:DATASE

2、GMENTDATAENDSSTACKSEGMENTSTACKDB256DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATA5教务处制第页MOVDS,AXMOVAX,STACKMOVSS,AXMOVDX,0001001000110100B;对应十六进制为:1234HPUSHDX;入栈CALLDISP;调用子程序ADDSP,2;平衡堆栈MOVAX,4C00HINT21HDISPPROCPUSHBPMOVBP,SP;用bp指示数据地址PUSHFPUSHAXPUSHBXPUSHCXP

3、USHDX;以上保护现场MOVBL,2;字节控制循环两次MOVCL,4;移动4位LOP:MOVDL,SS:[BP+5]SHRDL,CLCMPDL,0AHJCJ1ADDDL,7HJ1:ADDDL,30HMOVAH,2INT21HMOVDL,SS:[BP+5]ANDDL,00001111BCMPDL,0AHJCJ2ADDDL,7HJ2:ADDDL,30HMOVAH,2INT21HDECBP5教务处制第页DECBLJNZLOPPOPDXPOPCXPOPBXPOPAXPOPFPOPBP;恢复现场RETDISPENDPCODEENDSENDSTART流程图:5教务处制第页编译

4、连接MS-DOS下运行:本实验是如何利用DEBUG进行调试的:用debug命令打开.exe程序,使用t命令执行,主要检查地址是否取对,尤其再用堆栈传递参数时,取参数时的偏移地址增量。说明用堆栈传送参数的过程及其具体方法:1、将数据存入dx中,在调用子程序前压入栈顶。PUSHDX2、调用子程序,先将bp压入栈顶,再将sp值赋给bp。PUSHBPMOVBP,SP3、计算参数的偏移地址,取出数据并存入dl中。MOVDL,SS:[BP+5]2.设有一个数组存放学生的成绩(0~100),编制一个子程序统计0~59分,60~69分,70~79分,80~89分,90~100分的人

5、数,并分别存放到scoreE,scoreD,scoreC,scoreB,scoreA单元中,编写一~个主程序与之配合使用。源代码:DATASEGMENTscoredb70,86,99,45,60,98,99,99,99,99,99,99,99,99,99,99,99,99,99;全班成绩数组countdw19;总人数gradeNdb0,0,0,0,0;对应成绩等级为ABCDEDATAENDSSTACKSEGMENTSTACKdb256dup(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:movax

6、,DATAmovds,axmovax,STACKmovss,axmovbx,offsetscoremovcx,countagain:;调用子程序grade统计各个等级的人数moval,[bx]callgradeincbxloopagainmovbx,0movcx,5show:;调用子程序disp将各个等级人数打印出来,考虑了人数为两位数的情况moval,[bx+gradeN]calldispincbxloopshow;结束movax,4c00hint21hgradeprocpushcxpushaxpushfcmpal,60jaenext0inc[gradeN+4]j

7、mpnext4next0:cmpal,70jaenext1;不小于inc[gradeN+3]jmpnext4next1:cmpal,80jaenext2inc[gradeN+2]jmpnext4next2:cmpal,90jaenext3inc[gradeN+1]jmpnext4next3:inc[gradeN]next4:popfpopaxpopcxretgradeendpdispprocpushcxpushbxpushf;显示功能,因为最多只有两位数,使用一次除法即可ANDAH,0;商为十位,余数为个位MOVCL,10dDIVCLMOVDH,AHCMPAL,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。