资源描述:
《汇编实验七子程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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,