汇编程序:递归求年龄

简介: 【任务】有n个人坐在一起,第n个人比第n-1个人大h岁。第n-1个人比第n-2个人大h岁。以此类推,第2个人比第1个人大h岁。

【任务】有n个人坐在一起,第n个人比第n-1个人大h岁。第n-1个人比第n-2个人大h岁。以此类推,第2个人比第1个人大h岁。第1个人m岁。请问第n个人多大。用递归调用的方法设计程序完成题目。
【参考解答】

assume cs:code, ds:data, ss:sstack
data segment
     n 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,data
     mov ds,ax

     mov cl, n     ;cl代表人数
     mov al, m     ;al代表年龄
     call  renshu  ;调用子程序renshu
     mov a,al      ;保存年龄并返回

     mov ah,4ch
     int 21h

renshu  proc       ;子程序,实现递归调用
      cmp cl,1     ;人数减1
      jne age      ;人数不等于1,则转age
      ret          ;否则直接返回
age:  add al,h     ;年龄+h
      sub cl,1     ;人数—1
      call  renshu ;递归调用回renshu子程序,继续判断年龄
      ret
renshu  endp
code ends
end start
目录
相关文章
|
11月前
|
存储 Java C++
汇编语言、寄存器分类及程序计数器
汇编语言、寄存器分类及程序计数器
84 0
|
11月前
|
C语言
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(三)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(三)
|
11月前
|
编译器 C语言
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
|
11月前
|
存储 自然语言处理 程序员
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
|
存储 API C语言
从反汇编看恶意程序的C语言结构(二)
从反汇编看恶意程序的C语言结构
93 0
|
存储 程序员
Win知识 - 程序是怎样跑起来的——汇编语言的语法是“操作码+操作数”
Win知识 - 程序是怎样跑起来的——汇编语言的语法是“操作码+操作数”
91 0
Win知识 - 程序是怎样跑起来的——汇编语言的语法是“操作码+操作数”
|
编译器 C语言 C++
Win知识 - 程序是怎样跑起来的——通过编译器输出汇编语言的源代码
Win知识 - 程序是怎样跑起来的——通过编译器输出汇编语言的源代码
200 0
|
编译器 C语言
Win知识 - 程序是怎样跑起来的——汇编语言和本地代码是一一对应的
Win知识 - 程序是怎样跑起来的——汇编语言和本地代码是一一对应的
111 0
Win知识 - 程序是怎样跑起来的——汇编语言和本地代码是一一对应的
|
存储 Java
【Java 虚拟机原理】线程栈 | 栈帧 | 局部变量表 | 反汇编字节码文件 | Java 虚拟机指令手册 | 程序计数器
【Java 虚拟机原理】线程栈 | 栈帧 | 局部变量表 | 反汇编字节码文件 | Java 虚拟机指令手册 | 程序计数器
104 0
【Java 虚拟机原理】线程栈 | 栈帧 | 局部变量表 | 反汇编字节码文件 | Java 虚拟机指令手册 | 程序计数器
|
编译器 C语言 C++
用汇编分析C++程序,x86汇编
  说到用汇编的眼光看C++语言,那么怎么阅读汇编代码就成了我们需要解决的一个问题。其实,实话说,汇编其实不难。只是我们需要明白这样几个问题:   (1)汇编是什么语言?   (2)汇编中的主要内容有哪些?   (3)汇编语言是怎么和实际C/C++语言代码一一对应的?
150 0