福建农林大学_汇编实验四_子程序设计

福建农林大学_汇编实验四_子程序设计

ID:1188090

大小:175.00 KB

页数:12页

时间:2017-11-08

福建农林大学_汇编实验四_子程序设计_第1页
福建农林大学_汇编实验四_子程序设计_第2页
福建农林大学_汇编实验四_子程序设计_第3页
福建农林大学_汇编实验四_子程序设计_第4页
福建农林大学_汇编实验四_子程序设计_第5页
资源描述:

《福建农林大学_汇编实验四_子程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、福建农林大学计算机与信息学院实验报告系:计算机专业:计算机科学与技术年级:2014姓名学号:实验室号__计算机号实验时间:2016-10-29指导教师签字:刘庆连成绩:实验四子程序设计1.实验目的(1)学习子程序的编写,主子程序的调用;(2)不同模块间程序的调用和调试。2.实验内容1)数据段中的3个字符,调用子程序将其逐个显示出来。子程序的功能是显示一个字符。单步执行,对CALL语句和RET语句观察SP,IP的变化,并用D命令查看栈顶的内容。DATASEGMENTMAGDB‘ABC’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAS

2、TART:MOVAX,DATAMOVDS,AXMOVSI,0MOVCX,3LL:MOVDL,MAG[SI]CALLMADDINCSILOOPLLMOVAH,4CHINT21HMADDPROCMOVAH,02HINT21HRETMADDENDPCODEENDSENDSTART2)阅读S31.ASM和S32.ASM两个模块中的程序,并分别汇编,然后连接成一个可执行文件S31.EXE。具体步骤如下:MASMS31.ASM(分别汇编)MASMS32.ASMLINKS31S32(将两个文件连接成为一个文件名为S31)S31.EXE(运行)3)编程:利用主程序调用子程序,比较

3、BUF1和BUF2缓冲区中不相等的字符,并将不相等的字符显示出来。(也可以将找到的不相等字符逐个显示,用INT21H的02功能调用)4)编程:子程序搜索指定字符缓冲区中是否有N,如果有用Y替代。调用子程序将BUF1,BUF2,BUF3中的N全部用Y替代。附源程序:NAMES31.ASM不同模块间的段间调用。从键盘输入2位非压缩BCD数,存入AX寄存器中。为了将其转换为二进制数,编写一个子程序TRAN。显示子程序DISP完成将16进制数转换为对应的ASCII码并显示该字符,显示子程序在另一模块S32中。输入数据为00时结束。EXTRNDISP:FARCODESEGM

4、ENTPARA‘CODE’ASSUMECS:CODESTART:MOVAH,01HINT21HMOVBL,ALINT21HMOVAH,ALMOVAL,BLCMPAX,3030HJEEXITCALLNEARPTRTRANCALLFARPTRdispJMPSTARTEXIT:MOVAH,4CHINT21HTRANPROCNEAR;将输入的ASCII码转换成2进制数ANDAX,0F0FH;将ASCII码转换成非压缩BCD码,;高位在AL中MOVBL,AHMOVCL,10DMULCLADDAL,BLRETTRANENDPCODEENDSENDSTARTNAMES32.AS

5、MPUBLICDISPCODE1SEGMENTPARA‘CODE’ASSUMECS:CODE1DISPPROCFARMOVBL,ALMOVBH,00MOVCH,4ROLL:MOVCL,4ROLBX,CLMOVDL,BLANDDL,0FHCMPDL,9JBENEXT1ADDDL,07HNEXT1:ADDDL,30HMOVAH,02HINT21HDECCHJNZROLLRETDISPENDPCODE1ENDSEND5)编一个子程序:输入一个字符,显示出来。6)编一个子程序:输入一个字符串,显示出来。4.算法描述及实验步骤题1:依题输入相应的代码如下,运行->调试->单

6、步执行,对CALL语句和RET语句观察SP,IP的变化,并用D命令查看栈顶的内容。题3及4,5,6按要求编写即可5.调试过程无6.实验结果【题一】实验结果如下有上图可知,当程序运行到call语句之前,SP一直保持0000不变,而IP则一直在增加。继续单步执行程序由上图,当程序在RET语句之前运行时,SP、IP每次都是分别按2和1递增,当运行到RET语句时,SP还是按照2来递增,而IP出现了变化,这次却减少了很多,说明指针回撤执行下一个循环。【题二】按要求把s31s32分别汇编连接形成一个s31.exe文件,如下汇编s31汇编s32Links31s32形成一个s31

7、.exe的文件【题三】编写代码如下运行结果如下图BUF1=’HELLOWORLD!’BUF2=’HOLLOWOLLD~’比较可知BUF1与BUF2中不同的字符有ER!,结果与预期一致【题四】编写代码如下运行结果如下图分析:有图可知,结果将BUF1和BUF2中的n改为了y完成题目要求.【题五】编一个子程序:输入一个字符,显示出来编写代码如下【题六】编一个子程序:输入一个字符串,显示出来编写代码如下7.总结通过本次上机实验,学会了子程序的编写和主子程序的调用,并且掌握了在不同模块间程序的调用和调试。在本次实验中,再一次加深了对汇编程序的汇编以及连接运行的方法。附录:【

8、题3代码】

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

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

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