




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二编程实现循环程序**************************************************************************************一、题目内容**************************************************************************************•编程实现:-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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 队组对班组管理制度
- 餐厅部各项管理制度
- 广州中医药大学《大学生身心健康与保健》2023-2024学年第二学期期末试卷
- 湖南工程学院《线性代数及概率论》2023-2024学年第二学期期末试卷
- 内蒙古工业职业学院《Cubase影视音乐基础》2023-2024学年第二学期期末试卷
- 辽宁对外经贸学院《数值分析初步实验》2023-2024学年第二学期期末试卷
- 汉江师范学院《高尔夫球草坪学》2023-2024学年第二学期期末试卷
- 苏州大学应用技术学院《水工建筑物课程设计》2023-2024学年第二学期期末试卷
- 校企合作实习表现证明(8篇)
- 广州幼儿师范高等专科学校《数字经济概论B》2023-2024学年第二学期期末试卷
- GA 1812.3-2024银行系统反恐怖防范要求第3部分:印钞造币企业
- 2025年度教师招聘考试教育综合理论知识复习题库及答案(共250题)
- 2024北京丰台区五年级(下)期末英语试题及答案
- 比亚迪车辆购销合同协议
- 山东师范大学《英语综合阅读二》2023-2024学年第二学期期末试卷
- 【9数一模】2025年安徽省合肥市第四十五中学九年级中考数学一模试卷
- 2025届湖北省部分学校高三下学期4月调研考试语文试题讲评课件
- 2025-2030中国劳务派遣行业市场发展现状及前景趋势与投资研究报告
- 2025-2030律师事务所项目商业计划书
- 贵州省毕节地区大方县2024-2025学年小升初常考易错数学检测卷含解析
- 大型住宅小区施工组织设计
评论
0/150
提交评论