资源描述:
《汇编语言程序设计实验报告二》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、汇编语言程序设计实验报告(二)一、实验目的1)加深对循环结构的理解。2)掌握循环程序的设计方法。3)学习子程序的定义和调用方法。4)掌握子程序、子程序的嵌套、递归子程序的结构。5)掌握子程序设计、编制及调试。6)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。二、实验内容1)编制在屏幕上显示九九乘法表的程序。2)编制在屏幕上显示用*组成的三角形的程序。三、实验结果(1)(2)二、源代码(1)DATASEGMENTMDB31H,32H,33H,34H,35H,36H,37H,38H,39HDATAENDSSTACK1SEGMENTSTACKDW20
2、HDUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVCX,9MOVDI,OFFSETMLOP1:PUSHCXMOVCX,[DI]ANDCX,0FHMOVSI,OFFSETMLOP2:MOVAL,[SI]MOVDL,ALMOVAH,2INT21HANDAL,0FHMOVBH,ALMOVDL,'*'MOVAH,2INT21HMOVBL,[DI]MOVDL,BLMOVAH,2INT21HMOVDL,'='MOVAH,2INT21HANDBL,
3、0FHMOVAL,BHMULBLMOVAH,0MOVDL,10DIVDLMOVBL,AHCMPAL,0JENEXTMOVDL,ALADDDL,30HMOVAH,2INT21HNEXT:MOVDL,BLADDDL,30HMOVAH,2INT21HMOVDL,''MOVAH,2INT21HINCSILOOPLOP2MOVDL,0AHMOVAH,2INT21HMOVDL,0DHINT21HINCDIPOPCXLOOPLOP1MOVAH,4CHINT21HCODEENDSENDSTART(2)STACK1SEGMENTSTACKDW20HDUP(?)STACK1
4、ENDSCODESEGMENTASSUMECS:CODE,SS:STACK1BEGIN:MOVAH,1INT21HMOVBL,ALSUBBL,30HMOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HMOVBH,0MOVCX,BXMOVBX,1L1:PUSHCXMOVCX,BXL2:MOVDL,'*'MOVAH,2INT21HLOOPL2MOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HADDBX,1POPCXLOOPL1MOVAH,4CHINT21HCODEENDSENDBEGI
5、N二、实验心得这是第二次做汇编实验,首先,心理上已经没有了第一次做实验的那种茫然,知道了想要编写一个完整的程序,应当先将这一个大问题分解成若干个小的问题,找出每一个小问题所对应的解决方法,然后用代码一步一步实现,再将这一个一个的小问题串联起来,找到它们的契合点,用联系把它们组成一个完整的程序,其中最常用的就是转移指令和循环。这次实验遇到的困难比较多,比如程序里面明明写了很多的输出指令,但最后执行的时候就是没有输出,还有对于乘法的计算结果十六进制数向十进制的转化不到位,使得最后结果里面显示的总是乱码。对循环次数控制的不当,导致了最后输出的结果只能是一行,而
6、且循环控制语句里用几控制,就会显示出第几行。或者是输出回车换行的时候,不知道要两个一起输出,导致结果显示混乱。另外还有一些编写程序时出现的小错误,例如divideoverflow,还有目的操作数和源操作数类型不匹配等等。这些问题都需要自己在调试的过程中逐一解决。遇到的错误很多,并且无论怎样修改都还是不能使程序达到完美的状态的时候,情绪会比较不稳定,这时候才知道,编写程序除了有思路,有想法,有语言知识,还要有很强大的心理,要有耐心,才能去面对这一连串的错误。不过有了错误也不可怕,因为这些错误让我学到了很多用指令时应当注意的问题,知道了一些程序中固定的模式与
7、指令。总之,通过这次实验,对汇编的认识又加深了一些,不管是在整体上,还是在具体的程序上,都有了明显的进步。