您好,欢迎访问三七文档
实验四子程序设计一、实验目的(1)掌握汇编语言子程序设计方法。(2)掌握主程序与子程序之间的调用关系及调用方法。(3)掌握通过寄存器传送参数的方法。二、实验环境(1)硬件环境:计算机系统windows;(2)软件环境:装有MASM、DEBUG、LINK、等应用程序。三、实验内容(方法步骤):编程实现:十进制到十六进制数转换程序。程序要求:从键盘取得一个十进制数,然后把该数以十六进制形式在屏幕上显示出来。四、实验说明(1)键盘输入的十进制数(ASCII),要将它转换成二进制存放。子程序:DECIBIN(2)二进制转换成十六进制数并显示子程序:BINIHEX(3)为避免屏幕上的重叠,必须有回车和换行功能。子程序:CRLF用三个子程序联合实现题目要求联合由主程序达到。将BX寄存器作为过程之间传送转换数据的“交通员”。五、实验步骤(1)编辑、汇编源程序,生成相应的可执行文件(.EXE)(2)检查程序执行的结果是否正确。六、流程图主程序流程图如下图:开始调用DECIBIN调用CRLF调用BINIHEX结束调用CRLF子程序CRLF流程图如下图:输入回车符输出换行符返回子程序DECIBIN流程图如下图:0-BXDOS功能1号调用接收键入字符字符-30h字节扩展为字小于0?AXßàBXAX*10àAXAXßàBXN返回YAX+BXàBX子程序BINIHEX流程图如下图:4àCLBX循环左移4位ASCII-3AH加07H显示十六进制数N返回Y高4位置0转换为ASCII码小于0?CH-1=0?YN4àCH七、源程序datasegmentdataendscodesegmentassumecs:code,ds:datamain:callDECIBINcallCRLFcallBINIHEXmovah,4Chint21hDECIBINPROCMOVBX,0NEWCHAR:MOVAH,1INT21HSUBAL,30HJLEXITCBWXCHGAX,BXMOVCX,10DMULCXXCHGAX,BXADDBX,AXJMPNEWCHAREXIT:RETDECIBINENDPCRLFPROCNEARMOVAH,02HMOVDL,0AHINT21HMOVAH,02HMOVDL,0DHINT21HRETCRLFENDPBINIHEXPROCNEARSTART:MOVCH,4NOTATE:MOVCL,4ROLBX,CLMOVAL,BLANDAL,0FHADDAL,30HCMPAL,3AHJLPRINTITADDAL,7HPRINTIT:MOVDL,ALMOVAH,2INT21HDECCHJNZNOTATERETBINIHEXENDPcodeendsendmain八、问题思考(1)当输入“#”时,退出主程序,如何修改程序?(2)说明用寄存器传送参数的过程及其具体方法,各子程序的应用。(3)实验结果及所遇到问题,并说明解决的方法。九、实验小结
本文标题:汇编-子程序设计
链接地址:https://www.777doc.com/doc-5871201 .html