首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将C++代码转换为SPIM的程序集

将C++代码转换为SPIM的程序集
EN

Stack Overflow用户
提问于 2010-06-24 00:28:55
回答 1查看 1.9K关注 0票数 1

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-13 04:06:35

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

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

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

您将希望避免使用像std::vector这样的C++库,这些库编译成大量额外的代码而不是本地数组,特别是在没有优化的情况下,除非您确实需要这些特性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3103560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档