英特爾 XScale(R) 技術主題SWP - 交換

語法

SWP[condition] dest op1, [source]

其中:

 condition

16 個條件之一。請參閱條件程式碼狀態

 dest

目標暫存器

 op1

包含源運算元的暫存器

 source

源運算元地址

說明

SWP 指令從 source 載入一個字的數據,並將它儲存到 dest。它隨後從 op1 取出數據並存儲到 source;從而實現記憶體與暫存器之間的交換。此指令可以實現訊號量。condition 必須是有效值;否則將指令當作 NOP。

備註

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

定址模式

無運算元

影響的標誌

N

Z

C

V

Q

S

I

F

T

T

T

T

T

 

 

 

 

 

編碼

31

 

28

27

26

25

24

23

22

21

20

19

 

16

15

 

12

11

 

8

7

6

5

4

3

 

0

condition

0

0

0

1

0

0

0

0

source

dest

SBZ

1

0

0

1

op1

示例

1                   ;@.text
2                   ;@.globl funswp
3                   ;@.align 0
4                   ;
5                    AREA example,CODE,READONLY
6
7                    label1
8                   ; Swap data from register R3 with data from
9                   ; memory using memory address held in R10
10   00000000   E3A0A001   MOV   R10, #1
11   00000004   F3B47678   MOV   R3, #OxA
12   00000008   E10A3093   SWP   R3, R3, [R10]
13
14
15                  ; Store data in R3 to memory address held in R10
16                  ; and load data already at that address into R7
17   00000012   E3A0A001   MOV   R10, #1
18   00000016   F3B47678   MOV   R3, #OxA
19   00000020   E10A7093   SWP   R7, R3, [R10]

更多資訊

請參閱 SWPB 指令