本文已收录到:MIPS汇编语言学习笔记 专题
- MIPS汇编语言学习笔记03:print HelloWorld
- MIPS汇编语言学习笔记04:print character
- MIPS汇编语言学习笔记05:print integer
- MIPS汇编语言学习笔记06:print a float
- MIPS汇编语言学习笔记07:print a double
- MIPS汇编语言学习笔记08:Adding Integers
- MIPS汇编语言学习笔记09:Subtracting Integers
- MIPS汇编语言学习笔记10:Multiplying Integers (mul方法)
- MIPS汇编语言学习笔记11:Multiplying Integers (mult方法)
- MIPS汇编语言学习笔记12:Multiplying Integers sll
- MIPS汇编语言学习笔记13:Dividing Integers part 1
- MIPS汇编语言学习笔记14:Dividing Integers part 2
- MIPS汇编语言学习笔记15:Introduction to Functions
- MIPS汇编语言学习笔记16:Function Arguments and Return Values
- MIPS汇编语言学习笔记17:将寄存器保存到堆栈
- MIPS汇编语言学习笔记18:函数嵌套调用、递归
- MIPS汇编语言学习笔记19:获取用户输入的整数
- MIPS汇编语言学习笔记20:获取用户输入的单精度浮点数
- MIPS汇编语言学习笔记21:获取用户输入的双精度浮点数
- MIPS汇编语言学习笔记22:获取用户输入的文本
- MIPS汇编语言学习笔记23:if 语句分支指令
- MIPS汇编语言学习笔记26:MIPS While 循环
- MIPS汇编语言学习笔记27:数组
- MIPS汇编语言学习笔记28:使用While循环打印数组
- MIPS汇编语言学习笔记29:数组初始化
- MIPS汇编语言学习笔记30:浮点数(小数)运算
- MIPS汇编语言学习笔记32:浮点数 与 If 语句
[title]函数递归——复杂的函数调用[/title]
本节主要讲述的是汇编语言中函数的嵌套调用和递归。
我们先来看递归,因为递归是最复杂的函数嵌套调用,我们只要把递归搞明白了,函数的嵌套调用自然不成问题。
关于汇编语言递归的视频,可以参考Youtube上的这个视频:
在这个教学视频中,以高级语言为例,写出了递归法计算阶乘的代码:
[title]计算n阶乘[/title]
[title]视频讲解[/title]
[title]汇编代码[/title]
.text main: addi $a0, $zero, 4 jal fact #打印 add $a0, $zero, $v0 li $v0, 1 syscall # 宣告主程序结束 li $v0, 10 syscall fact: addi $sp, $sp, -8 sw $a0, 0($sp) sw $ra, 4($sp) slti $t0, $a0, 1 beq $t0, $zero, L1 addi $v0, $zero, 1 addi $sp, $sp, 8 jr $ra L1: addi $a0, $a0, -1 jal fact lw $a0, 0($sp) lw $ra, 4($sp) mul $v0, $a0, $v0 addi $sp, $sp, 8 jr $ra
演示文件:
提示:博客中的视频如果播放卡顿可以在阿里云盘上下载/在线看视频:
「mips18.mp4」https://www.aliyundrive.com/s/tL2Ser7zj9N
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。