2012-07-23 97 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中查找您針對的特定處理器,以查找每個實施的延遲。