当前位置: 代码迷 >> 汇编语言 >> 怎么用gas编译mips汇编代码
  详细解决方案

怎么用gas编译mips汇编代码

热度:6123   发布时间:2013-02-26 00:00:00.0
如何用gas编译mips汇编代码?
如题所示。

------解决方案--------------------------------------------------------
好吧,我没用过mips,不过原理和arm也一样。
1.你要下一个适合mips的交叉编译器。如我arm的名字arm-none-eabi-XXXX,一般下到的是一个工具集,有很多命令“XXXX”指的就是它们,如as, gcc, ld, objcopy等等。当然你不难得干,自己下个源码编译一个也是可以的(有点烦人)。
2.下好了,要安装好,这个没问题吧!反正,每个命令加参数--version试一下,正常就好。
3.编译(我以arm为例,你把”arm-none-eabi-“换成你编译器的前缀就行了):
<1>arm-none-eabi-gcc -E input.S | arm-none-eabi-as -o output.o
先用gcc -E将汇编源文件预处理一下,以防有#include这些as不认识的东西
as通过管道接收处理后的内容,并将其编译成目标文件,-o是指定输出文件的名字
<2>arm-none-eabi-ld -Ttext 0xc0008000 -g output.o -o out_elf
重定位程序-Ttext指定程序代码段开始的地址,生成的是elf格式的文件。这里有点问题,我这是编译来在裸机上运行的,0xc0008000是我开发板内存的地址,如果你是在有操作系统的环境下,我也不知道怎么搞。
<3>arm-none-eabi-ogjcopy -O binary -S out_elf out.bin
这步是将生成的elf格式的二进制文件转换成BIN格式,更多格式的转换请参考手册