英特爾 XScale(R) 技術主題立即數事先變址 (AM 5)

語法

[basereg, #+/-value*4]!

其中:

 basereg

指定包含基址的暫存器。

 value

指定 8 位立即數偏移量,乘以 4 后與 basereg 的值一起使用,以形成地址。

說明

定址模式“立即數事先變址”執行以下操作(偽程式碼說明):

if ConditionPassed (condition) then
if U == 1 then
  basereg = basereg + value * 4
else /* U == 0 */
  basereg = basereg - value * 4
start_addr = basereg
addr = start_addr
while (NotFinished (coprocessor[cpnum]))
  addr = addr + 4
end_addr = addr

此定址模式建立連續地址序列。對於第一個地址,將立即數偏移量乘以四後加到基址暫存器 basereg 的值,或從中減去。如果指令中指定條件的與條件程式碼狀態匹配,則此地址寫回基址暫存器 basereg。後續地址由前一個地址遞增四得到。這會持續執行到協處理器發出指令結束訊號。這樣,協處理器便可以訪問協處理器定義的數據。

協處理器不得要求進行超過 16 個字的傳輸。

編碼

31

 

 

28

27

26

25

24

23

22

21

20

19

 

 

16

 condition

 1

 1

 0

 1

 U

 N

 1

 L

 basereg

15

 

 

12

11

 

 

8

7

 

 

 

 

 

 

0

 cpdest

 cpnum

 value

 備註

N 位依賴於協處理器。
L 位表示“載入”( L == 1 ) 或“儲存”( L == 0 ) 指令。

 注意

如果 R15 指定為暫存器 basereg,則結果將會無法預知。

示例

LDCL    P5, CR12, [R8, #4]!

更多資訊

請參閱定址模式 5:載入與儲存協處理器
請參閱彙編器操作