汇编语言程序·打印菱形·乘法口诀表1

汇编语言程序·打印菱形·乘法口诀表1

ID:1248124

大小:341.03 KB

页数:9页

时间:2017-11-09

汇编语言程序·打印菱形·乘法口诀表1_第1页
汇编语言程序·打印菱形·乘法口诀表1_第2页
汇编语言程序·打印菱形·乘法口诀表1_第3页
汇编语言程序·打印菱形·乘法口诀表1_第4页
汇编语言程序·打印菱形·乘法口诀表1_第5页
资源描述:

《汇编语言程序·打印菱形·乘法口诀表1》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、声明!1.本实验报告仅供参考,切勿照抄!2.程序代码并不为最优,只是让初学者看一下方法,理解万岁!汇编上机课实验报告一.实验目的1.掌握汇编语言中怎样编写并运行一个程序。2.学习常见指令的用法。3.学会流程控制指令的使用。4.学习设计一个能实现一定功能的汇编小程序。二.实验题目设计一个程序,用户从键盘输入一个数字,程序执行并打印出一个菱形。例如,当输入7时,效果如下所示如下所示:三.程序设计步骤1.实验设计思路:当输入一个数字n后,及确定了程序结果的行数为2*n-1行。对每一行进行循环输出空格和‘*’,空格数和‘*’的个数关系如

2、下表所示:行数(1~n)空格个数*个数in-i2i-1对于此问题,需要以下几个变量来保存循环中用到的数字:程序中用到的变量执行单元中表示变量的寄存器输入的次数nBL第i次循环(即输出第i行)CL空格数目n-iBH*数目2i-12.算法分析:此时我们的步骤可如下:①存储变量,设定变量的值②进行第一次大循环,在i<=n时输出每行的空格和*号(此时空格数递减,‘*’数递增)。③进行第二次大循环,在i>0时输出每行的空格和*号(此时空格数递增,‘*’数递减)。其中的两个大循环都可分为两个小循环,即输出空格和输出‘*’的两个小循环。开始循

3、环计数器CL=1CL0?Y输出空格BH=BH-1BH=CLBH=2*BH-1NBH>0?Y输出*BH=BH-1CL+1,换行下面输出倒三角CL=CL-2CL>0?YBH=BL-CL(算得空格数同上,输出BH个空格BH=2*CL-1(算得*数)同上,输出BH个*CL-1,换行ENDPROC4.程序如下:datasegmentinfdb'pleaseinputnumber$'dataends//开辟数据段,存入提示信息codesegmentassumec

4、s:code,ds:databegin:movax,data;输出提示信息movds,axmovdx,offsetinfmovah,9int21hmovah,2;输出回车与换行movdl,0dhint21hmovdl,0ahint21hmovah,1;输入数字存入alint21hmovbl,alsubbl,30h;以bl作为总计数器nmovcl,1h;以cl作为循环次数imovah,2;输出回车与换行movdl,0dhint21hmovdl,0ahint21hChangeLine:;changeline意即为判断换行处cmpcl

5、,bl;判断是否满足循环条件jgprintInorder;大于时转移到输出倒三角处;以下段将输出n-i个空格movbh,bl;将4赋给bhsubbh,cl;bh=bh-iblank:cmpbh,0h;以bh作为循环次数,输出bh个空格jleprintsymbol;如果小于等于则跳到输出*号处movah,2;输出空格movdl,20hint21hsubbh,1h;空格计数器减一jmpblank;以下输出*号printsymbol:movbh,cl;算出输出*的数目addbh,bh;2*isubbh,1hsymbol:cmpbh,0

6、hjleOperateCL;判断*数,输完后跳到对CL处理的换行处movah,2;输出*movdl,'*'int21hsubbh,1hjmpsymbolOperateCL:incclmovah,2;输出回车与换行movdl,0dhint21hmovdl,0ahint21hjmpChangeLine;跳到下一行;输出倒三角printInorder:subcl,2;上半部分程序结束后,cl=n+1,则在下三角时减2NEXTChangeLine:cmpcl,0h;判断是否满足循环条件jlexit;小于0时结束程序;以下段将输出4-i个

7、空格movbh,blsubbh,clNEXTBlank:cmpbh,0hjleNEXTprintsymbol;如果小于等于则跳到输出*号处movah,2;输出空格movdl,20hint21hsubbh,1h;空格计数器减一jmpNEXTBlank;以下输出*号NEXTprintsymbol:movbh,cl;算出输出*的数目addbh,bhsubbh,1hNEXTsymbol:cmpbh,0hjleNEXTOperateCLmovah,2;输出*movdl,'*'int21hsubbh,1hjmpNEXTsymbolNEXTO

8、perateCL:decclmovah,2;输出换行movdl,0dhint21hmovdl,0ahint21hjmpNEXTChangeLineexit:movah,4chint21hcodeendsendbegin五.程序设计技巧:在倒三角阶段,cl已增长到

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

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

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