linker - MARS、MIPS 汇编程序,将两个文件链接在一起?

标签 linker mips mips32 mars-simulator

我有一个简短的问题。我正在使用 MARS 汇编程序(在 MIPS 指令集中编程)并且我有两个 MIPS 文件。一个文件包含我要运行的主要方法,它调用另一个文件中的函数。我的函数前面有 .globl 指令,但每次我尝试编译我的程序时,它都会说

Symbol "print_hex" not found in symbol table.

以下是更多上下文的屏幕截图: enter image description here

标签 print_hex 位于名为 print_hex.s 的文件中。

enter image description here

如何将这两个文件链接在一起?最后,如何告诉 MARS 在执行开始时调用特定标签,例如我希望它调用 main

最佳答案

  1. 将文件放在同一个目录
  2. 启用 MARS 选项 Settings->Assemble all files in directory
  3. 组装要开始执行的文件。

然后目录中的所有文件应该被组装并链接在一起。

要始终从您的主标签开始执行,您可以启用Settings->Initialize program counter to global 'main'

关于linker - MARS、MIPS 汇编程序,将两个文件链接在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31351857/

相关文章:

assembly - 将一个寄存器中的某些位存储到另一寄存器的某些位中

assembly - 如何在不使用伪指令的情况下加载内存地址?

c - ld.exe : cannot find entry symbol _start

algorithm - 是否有更适合 CISC 或 RISC 的算法或某些编程风格?

c - 如何找到函数原型(prototype)? (需要 LD_PRELOAD)

assembly - MIPS 中的除法伪指令

go - 在 Arduino Yún 上执行 Go 程序

使用 O1 优化时的 C++ 链接器错误

c++ - 包括不工作的 guard ? (500 个类型为 LNK2005 x 的错误已在 y.obj 中定义)

linux - 延迟加载程序