function - MIPS 中的函数(过程)

标签 function mips procedure

我是 MIPS 语言的新手,我不明白 MIPS 汇编语言中的函数(过程)是如何工作的。以下是但我会具体说明我的问题:

  1. 什么是:

    • jal
    • jr
    • $ra

    mips 语言中的意思和重要的事情

  2. 当我们想要创建函数或(过程)时如何使用它们?

最佳答案

首先,您可能需要检查 this快速 MIPS 引用。这确实对我有帮助。

其次,解释一下jal , jr$ra 。什么jal <label>所做的是跳转到label$ra 中标记并存储程序计数器(将其视为当前指令的地址)登记。现在,当您想从 label 返回时到你最初所在的位置,你只需使用 jr $ra

这是一个例子:

.text
main:
li $t0, 1
jal procedure # call procedure
li $v0, 10
syscall

procedure:
li $t0, 3
jr $ra # return

在 SPIM 模拟器中运行此程序时,您会注意到 $t0 中留下的值是 3,即在所谓的程序中加载的那个。

希望这有帮助。

关于function - MIPS 中的函数(过程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4206363/

相关文章:

javascript - 将重复代码注入(inject)函数 : JavaScript

python - Python 中的函数定义需要很多时间

scala - Foo在Scala中不带参数编译错误?

c - c中的注册函数

c - MIPS32 : recursive subroutine crashes at the "jr ra" line

php - 在 while 循环中调用 mysql PROCEDURE 只在第一次工作

assembly - 从MIPS切换到x86组装时我应该知道什么?

MIPS - 0x004001e8 : fetch address not aligned on word boundary 0x10010001 处的运行时异常

sql-server - 为表中每条记录的字段添加 1

input - netlogo 程序接受什么类型的输入