LDC/LDC2 - 載入協處理器

語法

LDC[condition][L] cpname, cpdest, addr_mode
LDC2[L] cpname, cpdest, addr_mode

其中:

 condition

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

 L

N 位 [22] 其中:
1 = 長載入(雙精度)
0 = 短載入(單精度)

 cpname

協處理器的名稱 (p0..p15)

 cpdest

協處理器目標暫存器

 addr_mode

定址模式 5:載入與儲存協處理器

說明

LDC 指令從 addr_mode 中包含的地址將記憶體數據載入到協處理器 cpname。LDC2 指令從 addr_mode 中包含的地址將數據載入到協處理器 cpname。不過,此指令只能無條件執行。LDC2 指令由於可提供額外的操作碼空間,因此對於協處理器設計者而言特別有用。condition 必須是有效值;否則將指令當作 NOP。

備註

如果沒有協處理器可以執行此指令,則產生未定義的指令異常。
如果實現系統控制協處理器時啟用對齊檢查,並且存在位 [01:0] != 0b00 的地址,則產生對齊異常。

定址模式

請參閱“定址模式 5 - 載入與儲存協處理器”。

影響的標誌

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

 

0

condition

1

1

0

P

U

N

W

1

basereg

cpdest

cpnum

addr_mode

示例

1                      @.text
2                      @.globl funcldc
3                      @.align 0
4
5                      @ * * * LDC (Addressing Mode 5) * * *
6
7                      AREA example, CODE, READONLY
8                      label1
9
10   00000000     FFFFFFFE    LDC   Lp1, c9, [R3, #-8]!
11   00000004     ECF4A203    LDC   Lp2, c10, [R4], #12
12   00000008     ECF5B301    LDC   Lp3, c11, [R5], #4
13   00000012     ECB90701    LDC   p7, c0, [R9], #4
14   00000016     ECBD4B02    LDC   p11, c4, [R13], #8
15
16   00000020     FFFFFFFE    LDC2  p1, c9, [R3, #-8]!
17   00000024     FCB4A203    LDC2  p2, c10, [R4], #12
18   00000028     FCB5B302    LDC2  p3, c11, [R5], #8
19   00000032     FCB90701    LDC2  p7, c0, [R9], #4
20   00000036     FFFFFFFE    LDC2  p11, c4, [R13], #-8
21
22
23                     @ * * * LDC Conditional * * *
24
25    00000040    E3A00000    MOV   R0, #0
26    00000044    E2901000    ADDS  R1, R0, #0@ Z set
27    00000048    D304101     LDCEQ p1, c4, [R0, #4]!
28
29
30
31    00000052    E3A0100A    MOV   R1, #10
32    00000056    E2912001    ADDS  R2, R1, #1@ C clear

33    00000060    3CB10302    LDCCC p3, c0, [R1], #8
34
35                            END

更多資訊

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