相关疑难解决方法(0)

ARM,Thumb和Thumb 2指令编码有什么区别?

我对指令集有点困惑.有Thumb,ARM和Thumb 2.根据我的阅读Thumb指令都是16位,但在ARMv7M用户手册(第vi页)中,提到了Thumb 16位和Thumb 32位指令.

现在我必须克服这种困惑.据说Thumb 2支持16位和32位指令.那么ARMv7M实际上支持Thumb 2指令而不仅仅是Thumb吗?

还有一件事.我可以说Thumb(32位)与ARM指令相同,它们都是32位吗?

arm thumb

33
推荐指数
4
解决办法
3万
查看次数

在手臂组装中

以下行在arm组件中做了什么:

000031e6        2916    cmp r1, #22
000031e8        bf1a    itte    ne
Run Code Online (Sandbox Code Playgroud)

我得到了第一行(比较r1到22)但是第二行怎么样(我之前从未见过itte命令而googling没有返回任何内容)

embedded assembly arm instruction-set thumb

18
推荐指数
2
解决办法
7179
查看次数

ARM7 IT(如果那时)指令真正做了什么?

我无法绕过IT指令的功能(如果那样).该快速参考卡有这样的:

操作:If-Then
汇编程序: IT{pattern} {cond}
操作:根据模式,最多可以有条件地执行以下四条指令.pattern是一个最多三个字母的字符串.每个字母可以是T(Then)或E(Else).IT之后的第一条指令条件为cond.如果相应的字母是T,则以下指令具有条件cond,或者如果相应的字母是E,则具有cond的反转.

实际上,这个概要有点意义.体系结构手册条目并没有让我在理解之旅的任何地方:

If-Then条件指令.
句法

IT {x {y {z}}} cond

其中: x 指定IT块中第二条指令的条件开关.
y 指定IT块中第三条指令的条件开关.
z 指定IT块中第四条指令的条件开关.
cond 指定IT块中第一条指令的条件.

IT块中第二,第三和第四条指令的条件开关可以是:
T 然后.将条件cond应用于指令.
E 其他.将cond的逆条件应用于指令.

注意

可以在IT指令中对cond使用AL(始终条件).如果这样做,IT块中的所有指令必须是无条件的,并且x,y和z中的每一个必须是T或省略但不是E.操作

IT指令最多可以有条件地遵循以下四条指令.条件可以完全相同,或者其中一些条件可以是其他条件的逻辑反转.IT指令后面的条件指令构成IT块.

IT块中的指令(包括任何分支)必须在其语法的{cond}部分中指定条件.

由于(大多数)每条指令都可以轻松指定条件,因此IT指令有什么用处?

arm cpu-architecture machine-instruction

7
推荐指数
2
解决办法
2627
查看次数

ARM Thumb/Thumb-2性能

我正在使用具有Thumb-2指令集的ARM Cortex-M3控制器.

Thumb模式用于将指令压缩为16位大小.因此减少了代码的大小.但是对于普通的Thumb模式,为什么说性能会降低?

对于Thumb-2,据说根据这两个链接改进了性能:

在单个16位指令限制编译器可用的函数的情况下,可以提高性能.

Thumb-2的既定目标是实现类似于Thumb的代码密度,其性能类似于32位内存上的ARM指令集.

这个表现究竟是什么?有人可以提供一些与之相关的例子吗?

arm cortex-m3

6
推荐指数
2
解决办法
6211
查看次数

ARM 统一汇编语言语法和解析器?

是否有公开可用的 ARM 统一汇编语言的语法或解析器,如ARM 体系结构参考手册 A4.2 中所述

本文档使用 ARM 统一汇编语言 (UAL)。此汇编语言语法为所有 ARM 和 Thumb 指令提供了规范形式。

UAL 描述了每个指令的助记符和操作数的语法。

只是我对解析助记符和每条指令的操作数的代码感兴趣。例如,您如何为这些行定义语法?

ADC{S}{<c>}{<q>} {<Rd>,} <Rn>, <Rm>, <type> <Rs>
IT{<x>{<y>{<z>}}}{<q>} <firstcond>
LDC{L}<c> <coproc>, <CRd>, [<Rn>, #+/-<imm>]{!}
Run Code Online (Sandbox Code Playgroud)

assembly grammar arm

5
推荐指数
1
解决办法
3111
查看次数