资源描述:
《汇编语言实验报告——累加器》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《汇编语言》实验报告累加器制作2014级计算机科学与工程学院学号:姓名一、实验要求:1•显示INPUTN:,提示用户输入数字字串2•检测输入字串的合法性,非法给出提示3•将输入数字字串转化为数值,存入变量n4•累加,存入变量sum5•以十进制显示sum二、流程图:转化为数值,将堆栈中的高位数字乘10然后与低位数字相加,放入堆->判断是否为来h占将堆栈中的数字依次输出显示,直将结果除以10并将余数存入堆栈,累计位数c三、源代码:DATASSEGMENTstrldb''Inputstr2db"sum=H,"$Hstr3dbOah,“error”,
2、”$”ndw0sumdw0DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXLEAdx,strl;输tl!提示符movah,9int21hinput:movah,Ol;输入数字int21hcmpaLOdh;判断是否为[Hl车jzsteplcmpal,nOn;判断字符合法性jberrorcmpal,“9”jaenorsubal,”0”;转化为ASCII码movah,0;此段将高位乘10pushaxmovax,nshlaxJpushaxmovcl,2shlax
3、,clmovbx,0popbxaddax,bxmovbx,O;高位与低位相力IIpopbxaddax,bxmovn,axxorcx,cx;设定累加次数movcx,njmpinputstep1:movax,exsubexJstep2:addax,ex;求累加和loopstep2movsum,axleadx,str2movah.9int21hmovcx,0movax,sumstep3:movdx,0movbx,10;将结果除以10并把余数压进栈divbxpushdxincexempax,Ohjnzstep3step4:xorax,axpopax;
4、栈内依次输djmovdx,axadddx,30hmovah,2int21hloopstep4jmplasterror:leadx,str3;输出错误提示语movah,9int21hlast:MOVAH,4CHINT21HCODESENDSENDSTART实验测试截图五、实验心得:本次试验的目的在于通过编辑累加器程序来熟悉汇编语言中对循环结构的使用,其中包括循环输入字符并判断合法性、累加计算、循环输出计算结果。其中的关键点在于通过堆栈来保护和存放数据,并在多次存放后依次提出数据,要求我们能够灵活地利用堆栈与寄存器之间的转换进行较为复杂的逻辑运算
5、。经过逐步编写和多次修改完善,终于成功地完成了本次实验。在实验过程中,我的逻辑思维能力得到加强,对分步编写和局部细化了解得更加透彻,同时对循环结构、数据输入和输出过程更加熟练,课堂上学习的知识得到了练习,掌握地更加牢收益匪浅。