0

我正在为 MIPS 编写自己的标准库实现。我希望能够从 C 中调用 MIPS 函数。我在这里有一个简单的函数:

PRINTLINE:
    jr $ra                 # just return for now

我希望能够从 C 中调用它:

PRINTLINE();

我该怎么做呢?我需要知道如何使用 GCC 来做到这一点。

4

2 回答 2

2

要在汇编中编写可从 C 调用的函数,您需要遵循 MIPS调用约定

最简单的方法是使用 GCC 对 C 语言的内联 asm扩展,并允许 GCC 处理调用约定的细节。你的例子会写成这样:

void PRINTLINE() {
  asm volatile("jr $ra");
}

您需要研究 GCC 手册以了解该asm声明的细微差别。

于 2013-10-10T22:48:48.163 回答
1

很抱歉只给你一个链接,但我不是 MIPS 专家

第 7 章,特别是以下第 7-11 和 7-12 节为您提供了一些示例:

http://www.tik.ee.ethz.ch/education/lectures/TI1/materials/assemblylanguageprogdoc.pdf

于 2013-10-10T15:31:31.797 回答