彙編指令msr STM 常用彙編指令

2021-10-17 01:23:05 字數 960 閱讀 5744

在嵌入式開發中,

匯程式設計序常常用於非常關鍵的地方,

比如系統啟動時初始化,

進出中斷時

的環境保護,恢復等對效能有要求的地方。

arm指令集可以分為六大類,分別為資料處理指令、load/store

指令、跳轉指令、程式狀態

暫存器處理指令、協處理器指令和異常產生指令。

arm指令使用的基本格式如下:

〈opcode〉

〈rd〉,〈rn〉

opcode

操作碼;指令助記符,如

ldr、str

等。cond

可選的條件碼;執行條件,如

eq、ne等。s

可選字尾;若指定「s」,則根據指令執行結果更新

cpsr

中的條件碼。

rd目標暫存器。

rn存放第

運算元的暫存器。

operand2

第個運算元

arm的定址方式如下:

立即定址

暫存器定址

暫存器間接定址

基址加偏址定址

堆疊定址

塊拷貝定址

相對定址

這裡不作詳細描述,可以查閱相關文件。

資料處理指令

load/store

指令程式狀態暫存器與通用暫存器之間的傳送指令

轉移指令

異常中斷指令

協處理器指令

在s3c2410、s3c2440

的資料手冊中對各種彙編指令有詳細的描述;這裡只對較常見的作寫

介紹。1、相對跳轉指令:b、bl

這兩條指令的不同之處在於

bl指令除了跳轉之外,

還將返回位址(bl

儲存在lr

暫存器中。

這兩條指令的可跳轉範圍是當前指令前後

32m。

bfuna

funa:

bfunb

常用彙編指令

1 加減指令 2 adr指令 adr是小範圍的位址讀取偽指令,ldr是大範圍的讀取位址偽指令。可實際上adr是將基於pc相對偏移的位址值或基於暫存器相對位址值讀取的為指令,而ldr用於載入32為立即數或乙個位址到指定的暫存器中。到這兒就會看到其中的區別了。如果在程式中想載入某個函式或者某個在聯接時候...

常用彙編指令

一 資料傳輸指令 它們在存貯器和 暫存器 寄存 器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依...

常用彙編指令

1 資料傳送指令 mov move r1,r2 r1 r2 move r1,4096 r1 4096 2 偽指令ldr 用於將乙個大於八位的資料裝入暫存器 ldr r1,0x123456789 r1 0x123456789 ldr r1,label 獲取絕對位址,即label的位址 label 3 ...