2024年4月2日发(作者:)

有个项目需要分析ARM THUMB指令的机器码,网上没有搜索到整理好的机器码表,

只好自己把相关指令的机器码归纳整理出来,这里分享给大家。THUMB指令并不多,只

有六十多条,这个数字真的是非常了不起,51都一百三十多条呢。

可能这张表对于大多数朋友都用不到,毕竟要深入到机器码这一层的机会还是比较少,

我想能到这一步的朋友一定对ARM指令有了足够的理解,所以就不对注释做另外的说明,

相信你一看就懂。

呵呵,如果你用上了这张表,记得在内心感谢我一下,这可是我从《Addison Wesley

- ARM Architecture Reference Manual (2nd Edition)》中一条一条摘录出来的。

v is immed_value

n is Rn

m is Rm

s is Rs

r is register_list

c is condition

表一:按指令字母升序排列

0100 0001 01mm mddd -- ADC Rd,Rm

0001 110v vvnn nddd -- ADD Rd,Rn,#immed_3

0011 0ddd vvvv vvvv -- ADD Rd,#immed_8

0001 100m mmnn nddd -- ADD Rd,Rn,Rm

0100 0100 hhmm mddd -- ADD Rd,Rm h1h2,h1 is msb for Rd,h2 is msb for

Rm

1010 0ddd vvvv vvvv -- ADD Rd,PC,#immed_8*4

1010 1ddd vvvv vvvv -- ADD Rd,SP,#immed_8*4

1011 0000 0vvv vvvv -- ADD SP,#immed_7*4

0100 0000 00mm mddd -- AND Rd,Rm

0001 0vvv vvmm mddd -- ASR Rd,Rm,#immed_5

0100 0001 00ss sddd -- ASR Rd,Rs

1101 cccc vvvv vvvv -- Bcc signed_immed_8

1110 0vvv vvvv vvvv -- B signed_immed_11

0100 0011 10mm mddd -- BIC Rd,Rm