汇编语言实验二--循环与子程序程序设计.docx
文本预览下载声明
3.2 实验二 循环与子程序程序设计 一、实验目的 1) 加深对循环结构的理解。 2)掌握循环程序的设计方法。3)学习子程序的定义和调用方法。 4)掌握子程序、子程序的嵌套、递归子程序的结构。 5) 掌握子程序设计、编制及调试。 6) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 二、实验内容 3)编制在屏幕上显示九九乘法表的程序。data segment data endsstack1 segment stack stack1 endscode segment assume cs:code,ds:data,ss:stack1 ;输出9*9乘法表start:mov ax,data mov ds,ax mov ax,0 mov bl,1l2:mov bh,1 l1:mov al,bhmul blaam ;乘法调整指令mov cx,ax ;乘积存放在cx中add bh,30hadd bl,30hmov dl,bh ;显示被乘数(bh)mov ah,2int 21hmov dl,* ;显示乘号mov ah,2int 21hmov dl,bl ;显示乘数(bl)mov ah,2int 21hmov dl,= ;显示等号mov ah,2int 21hadd ch,30h ;输出乘积mov dl,chmov ah,2int 21hadd cl,30hmov dl,clmov ah,2int 21hmov dl, mov ah,2int 21hsub bh,30hsub bl,30hinc bhcmp bh,bl ;被乘数(bh)小于乘数(bl)jna l1 ;小于等于则跳转到l1mov dl,0ah ;换行和置首位mov ah,2int 21hmov dl,0dhmov ah,2int 21hinc bl cmp bl,9jna l2mov ah,4chint 21hcode endsend start6)编写一个递归子程序,计算指数函数Xn的值,其中X,n从键盘输入。 data segment data1 dw 0data endsstack1 segment stack ;求x的n次方 dw 20h dup(?)stack1 endscode segment assume cs:code,ds:data,ss:stack1start:mov ax,data mov ds,axmov ah,1int 21hsub al,30hmov dl,al ;输入的数据x在dl中push dxmov dl,^mov ah,2int 21hpop dxmov ah,1int 21hsub al,30hmov bl,al ;n次方的n存放在bl(bx)中 mov bh,0 ;最后结果在ax中 push dxmov dl,= ;输入等号mov ah,2int 21hpop dxcall cimimov data1,axmov bl,almov cl,4shr ax,clmov dl,alcmp dl,9jna l1add dl,7l1:add dl,30h mov ah,2int 21hmov dl,bland dl,0fh ;输出低位cmp dl,9jna l2add dl,7l2:add dl,30h mov ah,02hint 21hmov ah,4chint 21hcimi proc and bx,bxjz cimi1 ;如果(bx)n=0,则跳转dec bxcall cimimul dlretcimi1:mov al,1 retcimi endpcode endsend start
显示全部