在"ARM11TechnicalRefManual“第1-34节的”拇指指令集“下,它说:
拇指指令集是最常用的32位ARM instructions.Thumb指令的子集,它有16位长,并有相应的32位ARM指令,对处理器模型有相同的影响。
谁能解释更多关于这一点,特别是第二句,并说明处理器是如何执行的?
发布于 2012-05-17 15:22:29
ARM处理器有两个指令集,传统的ARM指令集(指令全部为32位长)和更精简的拇指集(大多数普通指令为16位长(有些指令为32位长)。开发人员可以选择要运行的指令集,并且只有一组可以活动(即,一旦处理器切换到拇指模式,所有指令将被解码为使用拇指而不是手臂)。
虽然它们是不同的指令集,但它们具有相似的功能,并且可以使用相同的汇编语言表示。例如,指令
ADDS R0, R1, R2可编译为ARM (E0910002 / 11100000 10010001 00000000 00000010)或拇指(1888 / 00011000 10001000)。当然,它们执行相同的函数(添加r1和r2并将结果存储到r0),即使它们有不同的编码。这是拇指指令的意思是16位长,并有相应的32位ARM指令,对处理器模型有同样的影响。
拇指编码中的每一条指令在ARM中也有相应的编码,意思是“子集”语句。
*:不完全正确,ARM中没有"IT“指令,尽管ARM无论如何都不需要"IT”(汇编程序将忽略它)。
https://stackoverflow.com/questions/10638130
复制相似问题