gpt4 book ai didi

arm - 什么是 ARM Thumb 指令集?

转载 作者:行者123 更新时间:2023-12-02 15:38:25 35 4
gpt4 key购买 nike

在“ARM11TechnicalRefManual”第 1-34 节的“Thumb 指令集”下,它说:

“Thumb 指令集是最常用的 32 位 ARM 指令的子集。Thumb 指令长 16 位,并且具有相应的 32 位 ARM 指令,对处理器模型具有相同的效果。”

任何人都可以解释一下这尤其是第二句话并说明处理器如何执行它吗?

最佳答案

ARM处理器有2个指令集,传统的ARM集,其中指令都是32位长,以及更精简的Thumb集,其中最常见的指令是16位长(有些是32位长) )。开发者可以选择运行哪一个指令集,并且只能激活一组(即一旦处理器切换到 Thumb 模式,所有指令都将被解码为使用 Thumb 而不是 ARM)。

尽管它们是不同的指令集,但它们共享相似的功能,并且可以使用相同的汇编语言表示。例如指令

ADDS  R0, R1, R2

可以编译为ARM (E0910002/11100000 10010001 00000000 00000010) 或Thumb (1888/00011000 10001000)。当然,它们执行相同的功能(将 r1 和 r2 相加并将结果存储到 r0),即使它们具有不同的编码。这就是Thumb指令长16位,并且有对应的32位ARM指令,对处理器模型有相同效果的含义。

Thumb编码中的每条*指令在ARM中也有对应的编码,即“子集”这句话的意思。

<小时/>

*:严格来说不正确,ARM 中没有“IT”指令,尽管 ARM 无论如何都不需要“IT”(它将被汇编器忽略)。

关于arm - 什么是 ARM Thumb 指令集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10638130/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com