2012-07-23 42 views
1

据我所知,有许多不同的方法可以将数据从ARM内核寄存器(R寄存器)传输到其他寄存器。我发现这两种方式:ARM:将数据从内核寄存器传输到其他寄存器的不同方法

  1. 从核心转移登记使用MCR指令

  2. 从内核寄存器传输到D寄存器使用VMOV指令

我需要协处理器寄存器通过各种方式,并找出每个方面的延迟。但现在,我想知道是否有任何其他方式将数据从内核寄存器传输到其他寄存器(而不是内存),我可能已经忘记了。

我的架构是ARMv7-A,我正在使用GCC 4.6.3。

+0

这是一个家庭作业?你想知道的任何东西都在ARM ARM或该架构的TRM中。你可以很快地完成每条指令。 – 2012-07-23 23:34:16

+0

不,这不是。我正在对正在处理的ARM模型进行一些更改。 是的,我浏览了体系结构参考手册,这是我发现的。我只是想确保我没有错过任何重要的事情,因为我是新手。 – aminfar 2012-07-24 02:19:57

+1

我会在手册中搜索cpsr或spsr或者psr,看看您是否看到其他东西。 mrc/mcr是典型的函数,进出协处理器的方式(如果您检查旧的fpa指令,我认为它们只是已命名的协处理器指令) – 2012-07-24 05:27:50

回答

1

指令时序是微架构特定的(即ARMv7架构的不同实现将具有不同的等待时间)。

您需要在TRM中查找您针对的特定处理器,以查找每个实施的延迟。