实验3 子程序设计

实验3 子程序设计

ID:1802259

大小:40.00 KB

页数:2页

时间:2017-11-13

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

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

1、实验3 子程序设计实验[实验目的]1.掌握利用堆栈传递参数的子程序调用方法。2.掌握子程序递归调用方法。3.过程调用伪指令:PROC,ENDP,NEAR和FAR。4.8088指令:CALL,RET,RETn。5.利用RET指令退出EXE文件的方法。[实验重点和难点]1.利用堆栈传递参数的子程序调用方法;[实验课时]2学时[实验仪器]联想启天2400微型计算机。[实验原理]1.参考教材的汇编语言程序设计2.[实验内容与步骤]1.利用堆栈传递参数的子程序调用(求累加和)程序内容:STACKSEGMENTSTACKDB256DUP(0)STACKENDSDATASEGMENT

2、ARY1DB1,2,3,4,5,6,7,8,9,10COUNT1EQU$-ARY1SUM1DW?ARY2DB10,11,12,13,14,15,16,17,18COUNT2EQU$-ARY2SUM2DW?DATAENDSMAINSEGMENTASSUMECS:MAIN,DS:DATA,SS:STACKSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVAX,COUNT1PUSHAXLEAAX,ARY1PUSHAXCALLFARPTRSUMMOVAX,COUNT2PUSHAXLEAAX,ARY2PUSHAXCALLFA

3、RPTRSUMRETSTARTENDPMAINENDSPROCESEGMENTASSUMECS:PROCESUMPROCFARMOVBP,SPMOVCX,[BP+6]MOVBX,[BP+4]XORAX,AXADN:ADDAL,[BX]ADCAH,0INCBXLOOPADNMOV[BX],AXRET4SUMENDPPROCEENDSENDSTART操作步骤:(1)输入,汇编并将此程序连接成EXE文件。(2)用DEBUG的断点命令和T命令运行此程序,观察并记录每次过程调用及进出栈指令前后(带';'的语句)的SP和堆栈内容。(3)记录最后结果:SUM1,SUM2的段及偏移地址

4、和它们的内容。2.子程序递归调用(求阶乘)程序内容:STACKSEGMENTSTACKDB100HDUP(?)STACKENDSDATASEGMENTRESULDW?DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATA,SS:STACKSTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVAX,5CALLFACTMOVRESUL,AXRETFACTPROCANDAL,ALJNEIIAMOVAL,1RETIIA:PUSHAXDECALCALLFACTX2:POPCXMULCLRETF

5、ACTENDPMAINENDPCODEENDSENDSTART操作步骤:(1)将程序输入,汇编并连接成EXE文件。(2)用DEBUG的断点和T命令检查并记录每层递归嵌套过程的堆栈和AL内容。(3)修改源程序,将阶乘数5改为本程序的最大允许值(是多少?),重新汇编连接之。用DEBUG运行并记录RESUL单元内容。(4)若要在DOS命令下直接运行并显示阶乘结果(十六进制形式),试修改程序并调试运行。(机动)[本实验注意事项]1.2.[实验总结]1.2.[附实验参考程序]1.2.

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

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

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