资源描述:
《汇编语言实验二--循环与子程序程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3.2实验二循环与子程序程序设计一、实验目的1)加深对循环结构的理解。2)掌握循环程序的设计方法。3)学习子程序的定义和调用方法。4)掌握子程序、子程序的嵌套、递归子程序的结构。5)掌握子程序设计、编制及调试。6)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。二、实验内容3)编制在屏幕上显示九九乘法表的程序。datasegmentdataendsstack1segmentstackstack1endscodesegmentassumecs:code,ds:data,ss:stack1;输出9*9乘法表start:movax,datamovds,axmova
2、x,0movbl,1l2:movbh,1l1:moval,bhmulblaam;乘法调整指令movcx,ax;乘积存放在cx中addbh,30haddbl,30hmovdl,bh;显示被乘数(bh)movah,2int21hmovdl,'*';显示乘号movah,2int21hmovdl,bl;显示乘数(bl)movah,2int21hmovdl,'=';显示等号movah,2int21haddch,30h;输出乘积movdl,chmovah,2int21haddcl,30hmovdl,clmovah,2int21hmovdl,''movah,2int21hsubb
3、h,30hsubbl,30hincbhcmpbh,bl;被乘数(bh)小于乘数(bl)jnal1;小于等于则跳转到l1movdl,0ah;换行和置首位movah,2int21hmovdl,0dhmovah,2int21hincblcmpbl,9jnal2movah,4chint21hcodeendsendstart6)编写一个递归子程序,计算指数函数Xn的值,其中X,n从键盘输入。datasegmentdata1dw0dataendsstack1segmentstack;求x的n次方dw20hdup(?)stack1endscodesegmentassumecs:c
4、ode,ds:data,ss:stack1start:movax,datamovds,axmovah,1int21hsubal,30hmovdl,al;输入的数据x在dl中pushdxmovdl,'^'movah,2int21hpopdxmovah,1int21hsubal,30hmovbl,al;n次方的n存放在bl(bx)中movbh,0;最后结果在ax中pushdxmovdl,'=';输入等号movah,2int21hpopdxcallcimimovdata1,axmovbl,almovcl,4shrax,clmovdl,alcmpdl,9jnal1adddl
5、,7l1:adddl,30hmovah,2int21hmovdl,blanddl,0fh;输出低位cmpdl,9jnal2adddl,7l2:adddl,30hmovah,02hint21hmovah,4chint21hcimiprocandbx,bxjzcimi1;如果(bx)n=0,则跳转decbxcallcimimuldlretcimi1:moval,1retcimiendpcodeendsendstart