1、生成了 Thumb 指令还是 ARM 指令:如何通过编译参数改变,相同的程序ARM和Thumb编译的结果有何不同, 如指令本身和整体目标代码的大小等。
首先编写一个简单的C程序,这里我写了一个快排程序。如下图
编译选项为-marm时,生成arm指令,当编译选项为-mthumb时,生成thumb指令。无论-S生成汇编代码,-c生成目标代码,-o生成可执行代码,thumb指令下的空间都要比arm小,尽管不算是非常明显。
代码的差异:可以看到代码是有一定的不同的,比如左边有.thumb_func右边没有,右边的.LFB0也有很多多出的参数。