在“ARM11TechnicalRefManual”第1-34“中设定的Thumb指令”下,它说:
“Thumb指令集是最常用的32位ARM instructions.Thumb指令的子集被16位长,并有一个具有上的处理器模型相同效果的相应的32位ARM指令”。
任何一个可以更多地解释这尤其第二句,说如何处理执行呢?
在“ARM11TechnicalRefManual”第1-34“中设定的Thumb指令”下,它说:
“Thumb指令集是最常用的32位ARM instructions.Thumb指令的子集被16位长,并有一个具有上的处理器模型相同效果的相应的32位ARM指令”。
任何一个可以更多地解释这尤其第二句,说如何处理执行呢?
ARM处理器有2个指令集,传统ARM集,其中所述指令是所有32位长,并且更稠拇指集,其中最常见的指令是16位长(和一些是32位长)。 哪个指令设置为运行可以由开发人员来选择,并且只有一组可以是主动的(即一旦处理器被切换到Thumb模式,所有的指令将被解码为使用Thumb代替ARM)。
尽管它们是不同的指令集,它们共享类似的功能,并且可以使用相同的汇编语言来表示。 例如,该指令
ADDS R0, R1, R2
可被编译到臂(E0910002 / 11100000 10010001 00000000 00000010)或Thumb(1888/00011000 10001000)。 当然,他们执行相同的功能(增加R1和R2后存入R0),即使他们有不同的编码。 这是Thumb指令的含义是16位长,并有一个具有上的处理器模型相同效果的相应的32位ARM指令。
在Thumb编码每*指令也有ARM相应的编码,这是由“子集”句子的意思。
*:不完全正确,没有在ARM“IT”的指令,虽然ARM并不需要“IT”反正(它将被汇编忽略)。