




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二编程实现循环程序**************************************************************************************一、题目内容**************************************************************************************•编程实现:-1.主程序由键盘输入一个数(<10),用子程序1实现DATA段以这个数为首连续十个整数填充字节数组buf。譬如显示提示:"Pleaseinputanumber:",键盘输入3,执行子程序1后bufdb3,4,5,6,7,8,9,10,11,12。•竺程序实现十个数求和,调用另一子程序2实现将和逐位转为ASCII码显示:"Sumis:xx"。•提示:和不会超过十进制3位数,所以将和除以10,逐位转换,再加上30H即分别可以得它们的ASCII码。二、流程图开女台zoMOVBL,1O
OIVBL
立数V——AH+3QI
百位数十位数<——ALMOVAH,O
MOVBl_,1O
DIVBL
百位敏<——AL-i-SOH
十位数<——Al+301**************************************************************************************三、程序代码**************************************************************************************stacksegmentstack'stack'dw32dup(0)stackends=========================datasegmentTIP1DB'Plesaseinputanumber(0<n<10)BUFDB10DUP(?)TIP2DB'Fromnton+10istheresultoftheSUMDW0dataends;==========================STACSEGMENTSTADB100DUP(?)STACENDS;==========================codesegment;===================MAINprocfarassumess:stack,cs:code,ds:datapushdssubax,axmovax,datamovds,ax;===========MOVDX,OFFSETTIP1MOVAH,9INT21H$'$';用于变量定义予置的堆栈空间;显示提示语XORAX,AXMOVAH,1INT21H;键入并显示一个字符,把字符的ASCII码存入AL中MOVDL,0AHPUSHAXMOVAH,2INT21HPOPAX;换行MOVDI,OFFSETBUF;取BUF的首址存入DI中XORCX,CX;一1—调用子程序FUZHI;一1—调用子程序FUZHI实现DATA段以这个数为首XORAX,AX;给LOOP2;给LOOP2循环赋初值10MOVDI,OFFSETBUFAGAIN2:ADDAX,[DI]
INCDILOOPAGAIN2:ADDAX,[DI]
INCDILOOPAGAIN2;循环10次CALLDELAY1S;—2—调用子函数延时1SPUSHAXCALLTransf;—3—调用另一子程序ZHUANG实现将和逐位转为ASCII码显示POPAX;MOVAH,4CH;返回DOS,不用这个,对话框会一闪而退;INT21H;RETmovah,1;这个的话对话框会暂停int21hMAINENDP;/***************************************************************************/;子程序名:AddNum;功能:实现DATA段以输入的那个数为首连续十个整数填充字节数组buf;入口参数:;DS:DI-待填充的数组buf的首地址;AL-输入的那个数;出口参数:【DI】一填充结果;/***************************************************************************/
AddNumPROCPUSHCXSUBAddNumPROCPUSHCXSUBAL,30HMOVCX,0AH;将AL转为十进制;给LOOP循环赋初值10AGAIN1:MOV[DI],ALINCDIINCAL;将AL存入BUF中;DI+1,即数组BUF中的地址单元+1;AL+1LOOPAGAIN1POPCXRETAddNumENDP;返回主程序;/***************************************************************************/;子程序名:Transf;功能:实现将和逐位转为ASCII码显示RETAddNumENDP;返回主程序;DS:DI-数组buf的首地址;AX-和的十进制数;出口参数:AX-和的ASCII码;/***************************************************************************/TransfPROCPUSHFPUSHAXPUSHBXPUSHCXPUSHDXXORBX,BXPUSHAXXORAH,AHCMPAX,64HJNBSANWEIPOPAXXORAH,AHMOVBL,10DIVBLAH中,所以AH为个位数。;将除数赋值为10;将和AX除以10,商存入AL中,所以AL为十位数。余数存入PUSHAXMOVDX,OFFSETTIP2MOVAH,9INT21HPOPAX;显示结果提示语句XORDX,DXMOVDL,ALADDDL,30HPUSHAXMOVAH,2INT21HPOPAX;将十进制的十位数加上30H,得到它的ASCII码XORDX,DXMOVDL,AHADDDL,30HMOVAH,2INT21HJMPL;将十进制的个位数加上30H,得到它的ASCII码SANWEI:XORDX,DXMOVBX,10DIVBXAH中,所以AH为个位数。;将除数赋值为10;将和AX除以10,商存入AL中,所以AL为十位数。余数存入PUSHDXPUSHAXMOVDX,OFFSETTIP2MOVAH,9INT21HPOPAXPOPDX;显示结果提示语句MOVBL,10;将除数赋值为10DIVBL;将和AX除以10,商存入AL中,所以AL为十位数。余数存入AH中,所以AH为个位数。PUSHDXMOVDL,ALADDDL,30H;将十进制的百位数加上30H,得到它的ASCII码PUSHAXMOVAH,2INT21HPOPAXPOPDXPUSHDXXORDX,DX;将十进制的个位数加上30H,得到它的ASCII码MOVDL,AHADDDL,30HMOVAH,2POPDXADDDL,30HMOVAH,2L:POPDX;返回主程序POPCXPOPBXPOPAXPOPFRETTransfENDP;/***************************************************************************/DELAY1SPROC延时1S;返回主程序PUSHFPUSHBXPUSHCXMOVBX,3E8HLP2:MOVCX,176HLP1:PUSHF
POPFLOOPLP1DECBXJNZLP2POPCXPOPBXPOPFRETDELAY1SENDP,codeends,endMAIN四、操作截图国管坦员C:\Windows\system32\cmd.exeMicrosoftUindous[????6.1.76011????????<c>2009MicrosoftCorporation????????????????C:MJsers\2hy>e:E:\>cdmasmE:SMASM>masnweiji3.asmMicrosoft<R>MacroAssemblerUersion5.00(Copyright<C>MicrosoftCorp1981-1985,1987.AllrightsreseruedObjectfilename[weiji3.OBJ]:SourcelistingCNUL.LST]:Icross-referenceCNUL.CRF]:49134+381330B</tessymbolspacefree0UarningErrorsQSeuereErrorsE:M1ASM>捕E:\MASM\WEIJI3.EXE^lesaseinputanumber(0<n<10):4zromnton+10istheresultofthe:85五、实验分析或经验总结这个程序自己实在调不出来,只能很大程度地参考网上类似的题目,可见自己的基础太薄弱了,必须抓紧查漏补缺。1、编译汇编文件:先在记事本里输入代码后,再用汇编编译器编译。具体过程如下:1)、编辑:用编辑软件(EDIT.EXE或记事本)形成源程序(.ASM),如:LX.ASM;2)、汇编:用汇编程序(MASM.EXE)对源程序进行汇编,形成目标文件(.OBJ),格式如下:MASMLX.ASM;3)、连接:用连接程序(LINK.EXE)对目标程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纺织机械新技术应用试题及答案2024
- 逐步提升Adobe认证考试能力试题及答案
- Adobe设计师考试创意方法论试题及答案
- 商务礼仪师考试适应性试题及答案探讨
- 社会对智能交通认知度的研究试题及答案
- 工程现场管理实践试题及答案
- 深入探讨焊接工程师考试中的评估方法试题及答案
- 国内国际智慧交通发展对比试题及答案
- 质量工程师考场表现之道试题及答案
- 纺织机械生产效率促进试题及答案
- 2025陕西汉中汉源电力(集团)限公司招聘56人易考易错模拟试题(共500题)试卷后附参考答案
- 年产30万吨生物航煤项目可行性研究报告(仅供参考)
- 南京师范大学自主招生个人陈述范文与撰写要点
- 铁粉运输合同协议
- 计算机网络安全知识试题及答案2025年计算机二级考试
- 广州广州市天河区华阳小学-毕业在即家校共话未来-六下期中家长会【课件】
- 公司事故隐患内部报告奖励制度
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- DL∕T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
- Unit 1 Looking forwards Understanding ideas 教学设计-高中英语外研版(2019)选择性必修第四册
- 《历史文献学》教学大纲
评论
0/150
提交评论