關於彙編ARM指令DCD

2021-07-15 08:10:42 字數 1409 閱讀 3174

資料定義( data definition )偽指令

資料定義偽指令一般用於為特定的資料分配儲存單元,同時可完成已分配儲存單元的初始化。

— dcd ( dcdu ) 用於分配一片連續的字儲存單元並用指定的資料初始化。

3、 dcd(或dcdu)

語法格式:

標號 dcd (或 dcdu ) 表示式

dcd (或 dcdu )偽指令用於分配一片連續的字儲存單元並用偽指令中指定的表示式初始化。其中,表示式可以為程式標號或數字表示式。 dcd 也可用 「 & 」 代替。

用 dcd 分配的字儲存單元是字對齊的,而用 dcdu 分配的字儲存單元並不嚴格字對齊。

使用示例:

datatest dcd 4 , 5 , 6 ;分配一片連續的字儲存單元並初始化。

舉例1:

swifunction

dcd 

task_sw 

;0 dcd 

enter_critical 

;1 dcd 

exit_critical 

;2 dcd 

isrbegin 

;3 dcd 

changetosysmode 

;4 dcd 

changetousrmode 

;5 dcd 

__osstarthighrdy 

;6 dcd 

taskisarm 

;7 dcd 

taskisthumb 

;8 dcd 

osisrneedswap 

;9 dcd 

getosfunctionaddr 

;10dcd 

getusrfunctionaddr 

;11task_sw

mrs 

r3, spsr 

;儲存任務的cpsr

mov 

r2, lr 

;儲存任務的pc

舉例2:

語句如下:

fiqstackspace space fiq_stack_legth

fiqstack dcd fiqstackspace + fiq_stack_legth

最後一條語句,dcd的後面跟fiqstackspace + fiq_stack_legth,

dcd後面的fiqstackspace,表示一串空字元,這好理解

但是再上fiq_stack_legth,就不明白了,why?

fiqstackspace是標號,相當與位址,實際上就是在fiqstackspace space fiq_stack_legth 這個語句給分配的空間的首位址,fiqstackspace+ fiq_stack_legth 是這個位址空間的結束位址,將fiqstack指向這個位址,當做棧的頂部,該棧向下生長,長度fiq_stack_legth

關於彙編ARM指令DCD

資料定義 data definition 偽指令 資料定義偽指令一般用於為特定的資料分配儲存單元,同時可完成已分配儲存單元的初始化。dcd dcdu 用於分配一片連續的字儲存單元並用指定的資料初始化。3 dcd 或dcdu 語法格式 標號 dcd 或 dcdu 表示式 dcd 或 dcdu 偽指令用...

ARM彙編指令

b或bl指令引起處理器轉移到 子程式名 也就是位址 處開始執行,這兩個指令都是相對跳轉指令。兩者的不同之處在於bl指令在轉移到子程式執行之前,將其下一條指令的位址拷貝到r14 lr,鏈結暫存器 由於bl指令儲存了下條指令的位址,因此使用指令 mov pc lr 即可實現子程式的返回。而b指令則無法實...

arm彙編指令

一般arm官方風格彙編指令為大寫,windows ads mdk 實際運用一般用gnu風格,為小寫,linux 1 arm採用risc架構,cpu本身不能直接讀取內 存,而需要先將記憶體中內容加載入cpu中通用寄 存器中才能被 cpu處理 ldr loadregister 指令 將記憶體內容加載入通...