1/10
文档分类:高等教育

汇编实验七子程序设计.doc


下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

0/100
您的浏览器不支持进度条
下载所得到的文件列表
汇编实验七子程序设计.doc
文档介绍:
实验报告──学年第学期实验课程汇编语言学生姓名123实验项目子程序设计学院计算机科学技术实验性质专业选修课班级学号实验地点同组人数1第组实验日期第周星期第节成绩4环境参数Dosbox-0.74Masm5.0实验目的及要求实验原理、实验内容实验仪器设备及材料操作方法与实验步骤实验数据记录及处理实验结果分析及讨论一、实验目的:1.掌握子程序设计方法。2.掌握调用程序与子程序间参数传递的几种方法。二、实验任务1.编制一个子程序把一个十六位二进制数用十六进制形式在屏幕上显示出来,采用堆栈方法传递这个二进制数,并用一个主程序验证它。源代码:DATASEGMENTDATAENDSSTACKSEGMENTSTACKDB256DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART: MOVAX,DATA MOVDS,AX MOVAX,STACK MOVSS,AX MOVDX,10100B;对应十六进制为:1234H PUSHDX ;入栈 CALLDISP ;调用子程序 ADDSP,2 ;平衡堆栈 MOVAX,4C00H INT21HDISP PROC PUSHBP MOVBP,SP ;用bp指示数据地址 PUSHF PUSHAX PUSHBX PUSHCX PUSHDX ;以上保护现场 MOVBL,2 ;字节控制循环两次 MOVCL,4 ;移动4位LOP: MOVDL,SS:[BP+5] SHRDL,CL CMPDL,0AH JC J1 ADD DL,7HJ1:ADDDL,30H MOV AH,2 INT 21H MOVDL,SS:[BP+5] AND DL,00001111B CMP DL,0AH JC J2 ADD DL,7HJ2:ADD DL,30H MOV AH,2 INT 21H DECBP DEC BL JNZ LOP POPDX POPCX POPBX POPAX POPF POPBP ;恢复现场 RETDISP ENDPCODEENDS ENDSTART流程图:编译连接 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分的人数,并分别存放到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(?)STACKE 内容来自淘豆网www.taodocs.com转载请标明出处.