2020.09.23
as官方文档关于x86的很详细,但是mips的语焉不详。经过写test/关于mips的inline assembly内联汇编,我发现并踩平了许多坑。
针对这些文档不详的体系结构的汇编,最好的老师便是让gcc生成c语言对应的汇编gcc -S。
MIPS的as汇编语法
- 
延迟槽,参考Strange jump in MIPS assembly - .set noreorder不会自动添加nop到延迟槽,
- .set reorder(as默认)会自动处理延迟槽,
 
- 
和x86不一样的地方 - 操作数
- 顺序不分ATnT和intel格式,和指令手册一致(MIPS为数不多的闪光点,可是这和MIPS架构没啥关系,是ar的MIPS端的闪光点)
- 立即数直接写不用加$,
- 寄存器前缀是$,而不是%,
 
 
- 操作数
2021.01.09
MIPS宏汇编
参考X86toMips调研-续.md的2019.10.30和2019.10.31。
宏汇编的文件是binutils/include/opcode/mips.h和binutils/opcodes/mips-opc.c。