。跳轉指令
。資料處理指令
。程式狀態暫存器(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...