MIPS汇编语言学习笔记18:函数嵌套调用、递归

本文已收录于 MIPS汇编语言学习笔记 系列,共计 27 篇,本篇是第 16 篇

本文已收录到:MIPS汇编语言学习笔记 专题

[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

演示文件:

演示

作者: 高志远

高志远,24岁,男生

《MIPS汇编语言学习笔记18:函数嵌套调用、递归》有一条评论

  1. 提示:博客中的视频如果播放卡顿可以在阿里云盘上下载/在线看视频:
    「mips18.mp4」https://www.aliyundrive.com/s/tL2Ser7zj9N
    点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

发表评论

邮箱地址不会被公开。