gpt4 book ai didi

c++ - 将 C++ 代码转换为 SPIM 程序集

转载 作者:行者123 更新时间:2023-11-28 08:28:38 25 4
gpt4 key购买 nike

我在让我的编译汇编文件在 SPIM 上运行时遇到了很多麻烦。基本上我想写一个 c++ 文件,然后生成一个 .s 文件,我可以在 SPIM 中打开它而不会出错。这意味着程序集必须在 MIPS32 ABI 中使用 MIPS I 指令(一些 MIPS II)。我该怎么做呢?现在我正在使用 g++,但当我尝试在 SPIM 中运行该文件时出现重大错误。我在 MAC OSx 10.6.3 上工作,我在 linux 机器上远程编译。有没有我可以使用的特殊编译器,这对我来说很容易?

最佳答案

给编译器-S选项,它会生成汇编代码。然后您必须编辑代码以便 SPIM 接受它。

如果您启用像 -O1-Og 这样的优化以获得更多,您还需要 g++ -S -fno-delayed-branch可读代码。通常 SPIM 被配置为模拟没有分支延迟槽的 MIPS,但是 gcc 会假设分支之后的指令被运行,即使它被采用。 -fno-delayed-branch 让 gcc 用 nop 填充任何分支延迟槽。

另一个有用的选项是 -fverbose-asm 让 gcc 添加带有每个操作数的 C 变量名称的注释。

您需要避免使用像 std::vector 这样的 C++ 库,与本地数组相比,这些库编译成大量额外的代码,尤其是在没有优化的情况下,除非您确实需要这些功能。

关于c++ - 将 C++ 代码转换为 SPIM 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3103560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com