实验6 子程序设计

实验6 子程序设计

ID:18162035

大小:97.00 KB

页数:10页

时间:2018-09-14

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

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

1、实验六子程序设计实验一、实验目的1.掌握过程调用指令与过程返回指令的用法;2.掌握主程序与子程序之间的参数传送方法;3.掌握调用子程序时堆栈的变化情况及利用压栈、出栈保护现场的方法;4.掌握嵌套及递归子程序的设计方法。二、实验要求1.仔细阅读教材中有关子程序设计的章节;2.学会编写子程序说明文件;3.学会设置断点检查堆栈指针的变化及堆栈内容;4.学会用DEBUG中的P命令调试子程序;5.学会在子程序设计中保护所用到的寄存器。三、实验内容1.用递归子程序设计方法,编写计算N!(0≤N≤8)的子程序。要求:N

2、值由键盘输入,N!值以十六进制形式在屏幕上显示。2.编制程序,计算3~255之间的所有素数之和,并将3~255之间的所有素数存放在由DATA开始的连续内存单元中,所有素数之和存放在SUM单元中。要求:判断一个数是否为素数用子程序编写。四、程序清单及程序流程图1、;*******阶乘*********SSEGSEGMENTSKTOPDB100DUP(0)SSEGENDSDSEGSEGMENTDATADW0DATA1DB0DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGASSU

3、MESS:SSEGSTART:MOVAX,DSEGMOVDS,AXMOVAX,SSEGMOVSS,AXMOVSP,SIZESKTOPMOVAH,01HINT21HSUBAL,30HMOVDATA1,ALXORAH,AHMOVBX,AXCALLJIECMOVDATA,AXCALLQHTOAMOVCX,AXMOVDL,BHMOVAH,02HINT21HMOVDL,BLMOVAH,02HINT21HMOVDL,CHMOVAH,02HINT21HMOVDL,CLMOVAH,02HINT21HMOVAH,4CHIN

4、T21HJIECPROCANDBX,BXJZJIEC1PUSHBXDECBXCALLJIECPOPBXMULBXRETJIEC1:MOVAX,1RETJIECENDPHTOAPROCANDAL,0FHCMPAL,10JCHTOA1ADDAL,07HTOA1:ADDAL,30HRETHTOAENDPBHTOAPROCPUSHCXMOVCH,ALMOVCL,04SHRAL,CLCALLHTOAMOVAH,ALMOVAL,CHCALLHTOAPOPCXRETBHTOAENDPQHTOAPROCNEARPUSHA

5、XMOVAL,AHCALLBHTOAMOVBX,AXPOPAXCALLBHTOARETQHTOAENDPCSEGENDSENDSTART流程图:结束输出各位调用QHTOA求十六进制显示调用JIEC求阶乘子程序键盘输入N值设置堆栈段指针设置数据段指针设置数据段地址设置堆栈段地址开始主函数:结束JIEC(N)=1计算JIEC(N)=N*JIEC(N-1)顺序取出保存N保存N,领N=N-1,求JIEC(N-1)N==1?开始JIEC子程序:YN结束AL+37H输出AL+30H输出AL>10?开始QHTOA子程序

6、:YN运行结果:1、2、2、;**********素数***********DSEGSEGMENTDATADB64DUP(0)SUMDW0DSEGENDSSSEGSEGMENTSTACKSTKDB20DUP(0)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGASSUMESS:SSEGSTART:MOVAX,DSEGMOVDS,AXMOVAX,SSEGMOVSS,AXMOVSP,SIZESTKMOVCL,255XORBX,BXLEASI,DATARST:MOVAL,CLCA

7、LLISSUCMPAH,0JENNOTXORAH,AHADDBX,AXMOV[SI],CLINCSINNOT:DECCLCMPCL,2JNERSTMOVSUM,BXMOVAH,4CHINT21HISSUPROCNEARPUSHBXPUSHCXXORAH,AHMOVCX,AXMOVBL,ALDECBLSSTR:MOVAX,CXDIVBLCMPAH,0JEEENDDECBLCMPBL,1JNESSTRMOVAH,1EEND:POPCXPOPBXRETISSUENDPCSEGENDSENDSTART流程图:25

8、5存入CLSI指向存储首地址设置堆栈段指针设置数据段指针设置数据段地址设置堆栈段地址开始主函数:CL=2?CL-1BL是素数?调用ISSU求素数函数YNNY存入[SI],SI+1求和结束ISSU子程序流程图:BX入栈保存开始BL赋值CL-1AX除以BLYAH=0?NYBL=1?NBL-1是素数AH=1不是素数AH=0BX出栈返回运行结果:1、2、3、

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

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

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