英特爾 XScale(R) 技術主題LDMIA (Thumb*) - 多重載入之後遞增

語法

LDMIA startreg!, reg {, reglist }

其中:

 startreg

包含起始地址的暫存器

 !

啟用基址暫存器寫回;
必須設定。

 reg

要載入的有效暫存器

說明

LDMIA 指令載入 reg 指定的部分、甚至全部通用暫存器。reg 指定的暫存器按照升序從自低到高的記憶體地址進行載入。startreg 按載入的暫存器數的四倍遞增。必須在暫存器列表中指定至少一個暫存器,否則結果將會“無法預知”。

備註

如果試圖進行無效的載入或儲存數據訪問,則產生數據終止異常。如果實現系統控制協處理器時啟用對齊檢查,並且存在位 0..1 != 0b00 的地址,則產生對齊異常。

定址模式

無運算元。

影響的標誌

N

Z

C

V

Q

S

I

F

T

 

 

 

 

 

 

 

 

 

編碼

15

14

13

12

11

10

 

8

7

 

0

1

1

0

0

1

startreg

reglist

示例

1                             @.text
2                             @.globl funldm
3                             @.align 0
4                             ;
5                         AREA example,CODE,READONLY
6                         CODE16
7
8                         label1
9                             ; Load a block of registers R1, R2,
10                            ; R4, R5, R6 and R7 from memory
11                            ; starting at address held in R3.
12                            ; R3 is incremented by 4*6 bytes.
13                            ; Note: Registers loaded in their
14                            ; numeric order, not as specified.
15                            ; That is, R1 is loaded first from
16                            ; lowest memory address i.e. [R3]
17    00000000    CBF6    LDMIA    R3!, {R2,R4-R7,R1}
18
19
20
21                            ; Load a block of registers R1, R2,
22                            ; R3 and R7 from memory, starting
23                            ; at address held in R3.
24                            ; Since R3 is in reg list to be
25                            ; loaded, it retains its loaded value
26                            ; and is not updated
27    00000002    CB8E    LDMIA    R3!, {R1-R3,R7}

更多資訊

請參閱 STMIA 指令