ARM微處理器的指令集

2021-05-23 21:49:40 字數 2373 閱讀 3891

。跳轉指令

。資料處理指令

。程式狀態暫存器(psr)處理器

。載入、儲存指令

。協處理器指令

。異常產生指令

adc  帶進製加法指令

add  加法指令

and  邏輯與指令

b 跳轉指令

bic 位清零指令

bl 帶返回的跳轉指令

blx 返回和狀態跳轉指令

bx 帶狀態切換的跳轉指令

cdp 協處理器資料操作指令

cmn 比較反值指令

cmp 比較指令

eor 異或指令

ldc 儲存器到協處理器資料傳輸指令

ldm 載入多個暫存器指令

ldr 儲存器到暫存器的資料傳輸指令

mcr 從arm 暫存器到協處理暫存器的資料傳輸指令

mla 乘加運算指令

mov 資料傳送指令

mrc 從協處理器暫存器到arm 暫存器的資料傳輸指令

mrs 傳送cpsr 或spsr 的內容到通用暫存器指令

mul 32位乘法指令

mvf 傳送值到浮點數暫存器

mvn 資料取反傳送指令

orr 邏輯或指令

rsb 逆向減法指令

rsc 帶借位的逆向減法指令

sbc 帶借位減法指令

stc 協處理器暫存器寫入儲存器指令

stm 批量記憶體字寫入指令

str 暫存器到暫存器的資料傳輸指令

sub 減法指令

swi 軟體中斷指令

teq 相等測試指令

tst 位測試指令

arm 指令的立即數定址是一種特殊的定址方式,運算元本身就在指令中給出,只要取

出指令也就取到了運算元。這個運算元被稱為立即數。

add r0,ro,#1  ; r0 <- r0 + 1

add r0,r0,#0x3a   ;r0 <-- r0 + 0x3a          

在以上2條指令中,第2 個源運算元即為立即數,實際使用時以「#」符號為字首。

add r0,r1,r2  ; r0 <-r1 + r2;

該指令的執行效果是將暫存器r1和r2 的內容相加,其結果存放在暫存器r0中。

3.暫存器間接定址

暫存器間接定址就是以暫存器中的值作為運算元的位址,而運算元本身存放在儲存器

中add r0,r1,[r2]   ; r0 <--r1 +[r2]

ldr r0,[r1]    ;r0 <--[r1]

在第 1 條指令中,以暫存器r2 的內容作為運算元的位址,然後與r1 相加,其結果存入

暫存器r0 中。

第 2 條指令將以r1 的值為位址的儲存器中的內容送到暫存器r0 中。

4.基址變址定址

基址變址的定址方式就是將暫存器(該暫存器一般稱作基址暫存器)的內容與指令中給

出的位址偏移量相加,從而得到乙個運算元的有效位址

ldr r0,[r1,#0x0a] ;r0←[r1 + 0x0a]

ldr r0,[r1,#0x0a]! ;r0←[r1 + 0x0a]、r1←r1 + 0x0a

在第 1 條指令中,將暫存器r1 的內容加上0x3a形成運算元的有效位址,將該位址處的

運算元送到暫存器r0 中。

在第 2 條指令中,將暫存器r1 的內容加上0x0a形成運算元的有效位址,從而取得操作

數存入暫存器r0 中,然後,r1 的內容自增0x0a個位元組。

5.多暫存器定址

採用多暫存器定址方式,一條指令可以完成多個暫存器值的傳送。這種定址方式可以用

一條指令完成傳送最多16 個通用暫存器的值

ldmia r0, ;r1←[r0]

;r2←[r0 + 4]

;r3←[r0 + 8]

;r4←[r0 + 12]

該指令的字尾ia表示在每次執行完載入/儲存操作後,r0 按字長度增加,因此,指令可

將連續儲存單元的值傳送到r1~r4。

6.相對定址

與基址變址定址方式相類似,相對定址以程式計數器pc 的當前值為基位址,指令中的

位址標號作為偏移量,將兩者相加之後得到運算元的有效位址。比如下面的程式段完成子程

序的呼叫和返回,跳轉指令bl採用了相對定址方式。

7.堆疊定址

堆疊是一種資料結構,按filo 的工作方式,使用乙個稱堆疊指標的專用暫存器指示當前的操作位置,堆疊指標總是指向棧頂。

根據堆疊生成方式,堆疊又可以分為遞增堆疊(ascending stack)和遞減堆疊(decending stack),當堆疊由低位址想告地狀生成是,稱為遞增堆疊;

(1)滿遞增堆疊:堆疊指標指向最後壓入的資料,並且堆疊以遞增方式向上生成。

(2)滿遞減堆疊:堆疊指標指向最後壓入的資料,並且堆疊以遞減方式向下生成。

生成。生成。

ARM指令集 協處理器指令

arm 微處理器可支援多達 16 個協處理器,用於各種協處理操作,在程式執行的過程中,每個協處理器只執行針對自身的協處理指令,忽略 arm 處理器和其他協處理器的指令。arm 的協處理器指令主要用於 arm 處理器初始化 arm 協處理器的資料處理操作,以及在arm 處理器的暫存器和協處理器的暫存器...

arm處理器的thumb和arm指令集

arm處理器擁有多種指令集,不同的架構支援不同的指令集。armeabi v7a是乙個32位的架構,其支援thumb 1,thumb 2,arm三種指令集。thumb 1指令集是arm指令集的子集,thumb 1指令長度為16位 兩個位元組 arm指令為32位 4個位元組 thumb 1指令集並不是乙...

ARM微處理器系列

目前有classic系列 cortex m系列 cortex r系列 cortex a系列和cortex a50系列5個大類。classic系列 該系列處理器由三個子系列組成 arm7系列 基於armv3或armv4架構 arm9系列 基於armv5架構 arm11系列 基於armv6架構 cort...