本文主要是介绍汇编程序:递归求年龄,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【任务】有n个人坐在一起,第n个人比第n-1个人大h岁。第n-1个人比第n-2个人大h岁。以此类推,第2个人比第1个人大h岁。第1个人m岁。请问第n个人多大。用递归调用的方法设计程序完成题目。
【参考解答】
assume cs:code, ds:data, ss:sstack
data segmentn db 10 ;人数m db 7 ;第1个人年龄h db 3 ;年龄差a db ? ;第n个人的年龄
data ends ; 定义数据段sstack segment stack 'stack'
dg db 100h dup(?)
sstack ends ;定义堆栈段code segment ;定义代码段
start:mov ax,datamov ds,axmov cl, n ;cl代表人数mov al, m ;al代表年龄call renshu ;调用子程序renshumov a,al ;保存年龄并返回mov ah,4chint 21hrenshu proc ;子程序,实现递归调用cmp cl,1 ;人数减1jne age ;人数不等于1,则转ageret ;否则直接返回
age: add al,h ;年龄+hsub cl,1 ;人数—1call renshu ;递归调用回renshu子程序,继续判断年龄ret
renshu endp
code ends
end start
这篇关于汇编程序:递归求年龄的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!