Mips 编程,如何从单独的文件调用函数
我有一个相对基本的问题,我在从单独的文件调用函数时遇到问题。我的谷歌搜索结果很差,其他语言有很多,但 MIPS 的不多。
任何帮助将不胜感激
I have a relatively basic question, I've been having trouble calling a function from a separate file. My googling has come up short, there is a lot for the other languages but not much in the way of MIPS.
Any help would be appreciated
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
MIPS 不是一种语言,而是一种指令集架构。
假设您确实是在 MIPS 汇编器中编程并且正在使用包括 GNU 汇编器在内的 GCC 工具链,则需要在实现函数的文件中使用
.global myfunc
声明您的函数,然后链接器应该能够解析在另一个文件中使用的函数名称,例如jal myfunc
。您不需要在使用
myfunc
的文件中使用.extern myfunc
指令,因为 GNU 工具将所有未定义的符号视为外部符号。如果您使用 MARS,则这些都不适用。
MIPS isn't a language, it is an instruction set architecture.
Assuming you really mean that you are programming in MIPS assembler AND you are using the GCC toolchain including GNU assembler, you need to declare your function with a
.global myfunc
in the file where it is implemented, then the linker should be able to resolve the function name where it is used in another file e.g.jal myfunc
.You don't need to use an
.extern myfunc
directive in the file wheremyfunc
is used because the GNU tools treat all undefined symbols as external.If you are using MARS, then none of this applies.