英特爾 XScale(R) 技術主題SWPB - 交換位元組

語法

SWP[condition]B dest op1, [source]

其中:

 condition

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

 dest

目標暫存器

 op1

包含源運算元的暫存器

 source

源運算元地址

說明

SWPB 指令從 source 載入一個位元組的數據,按照零擴充套件方式擴充套件成 32 位字,然後儲存到 dest。它然後從 op1 取出 LSB 位元組並存儲到 source;從而實現記憶體中包含的位元組值與暫存器的 LSB 位元組之間的交換。此指令可以實現訊號量。condition 必須是有效值;否則將指令當作 NOP。

備註

如果試圖進行無效的載入或儲存數據訪問,則產生數據終止異常。

定址模式

無運算元

影響的標誌

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

1

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 least byte of data from register R3 with
9                  ; data from memory using memory address held in R8
10                 ; Data from memory byte is zero-extended
11                 ; to form a 32-bit word to place in R3
12   00000000   F3B4D678   MOV    R8, #OxA
13   00000004   F3B47678   MOV    R3, #Ox1
14   00000008   E1083093   SWPB   R3, R3, [R8]
15
16                  ; Store least byte of data held in R5
17                  ; to memory address held in R10
18                  ; and load byte data already at that address
19                  ; zero-extended into R7
20   00000012   F3B4F678  MOV     R10, #OxA
21   00000016   E3A05001  MOV     R5, #1
22   00000020   E10A7095  SWPB    R7, R5, [R10]

更多資訊

請參閱 SWP 指令