Sor*_*ush 38 arm instruction-set thumb
在"ARM11TechnicalRefManual"的第1-34节"拇指指令集"下,它说:
"Thumb指令集是最常用的32位ARM指令的子集.Tumb指令长16位,并且具有相应的32位ARM指令,对处理器型号具有相同的影响."
谁可以解释更多关于这个特别是第二句话,并说处理器如何执行它?
ken*_*ytm 49
ARM处理器有2个指令集,传统ARM集,其中所述指令是所有32位长,并且更稠拇指集,其中最常见的指令是16位长(和一些是32位长).开发人员可以选择运行哪个指令集,并且只有一个集合可以处于活动状态(即,一旦处理器切换到Thumb模式,所有指令将被解码为使用Thumb而不是ARM).
虽然它们是不同的指令集,但它们共享相似的功能,并且可以使用相同的汇编语言表示.例如,指令
ADDS R0, R1, R2
Run Code Online (Sandbox Code Playgroud)
可以编译为ARM(E0910002/11100000 10010001 00000000 00000010)或Thumb(1888/00011000 10001000).当然,它们执行相同的功能(添加r1和r2并将结果存储到r0),即使它们具有不同的编码.这是Thumb指令长度为16位的含义,并且具有相应的32位ARM指令,对处理器型号具有相同的效果.
Thumb编码中的每个*指令在ARM中也具有相应的编码,其由"子集"句子表示.
*:不完全正确,ARM中没有"IT"指令,尽管ARM无论如何都不需要"IT"(汇编器会忽略它).
| 归档时间: |
|
| 查看次数: |
34234 次 |
| 最近记录: |