ARM指令集是指計算機ARM操作指令系統。在ARM中有兩種方式可以實現程式的跳轉:一種是跳轉指令;另一種是直接向PC暫存器(R15)中寫入目標地址值。
ARM指令集可以分為跳轉指令、數據處理指令、程式狀態暫存器(PSR)處理指令、載入/存儲指令、協處理器指令和異常產生指令六大類。
基本介紹
- 中文名:ARM指令集
- ADC:帶進位的32位數加法
- ADD:32位數相加
- AND:32位數的邏輯與
ARM 指令列表
ADC | 帶進位的32位數加法 |
ADD | 32位數相加 |
AND | 32位數的邏輯與 |
B | 在32M空間內的相對跳轉指令 |
BEQ | 相等則跳轉(Branch if EQual) |
BNE | 不相等則跳轉(Branch if Not Equal) |
BGE | 大於或等於跳轉(Branch if Greater than or Equa) |
BGT | 大於跳轉(Branch if Greater Than) |
BIC | 32位數的邏輯位清零 |
BKPT | 斷點指令 |
BL | 帶連結的相對跳轉指令 |
BLE | 小於或等於跳轉(Branch if Less than or Equal) |
BLEQ | 帶連結等於跳轉(Branch with Link if EQual) |
BLLT | 帶連結小於跳轉(Branch with Link if Less Than) |
BLT | 小於跳轉(Branch if Less Than) |
BLX | 帶連結的切換跳轉 |
BX | 切換跳轉 |
CDP CDP2 | 協處理器數據處理操作 |
CLZ | 零計數 |
CMN | 比較兩個數的相反數 |
CMP | 32位數比較 |
EOR | 32位邏輯異或 |
LDC LDC2 | 從協處理器取一個或多個32位值 |
LDM | 從記憶體送多個32位字到ARM暫存器 |
LDR | 從虛擬地址取一個單個的32位值 |
MCR MCR2 MCRR | 從暫存器送數據到協處理器 |
MLA | 32位乘累加 |
MOV | 傳送一個32位數到暫存器 |
MRC MRC2 MRRC | 從協處理器傳送數據到暫存器 |
MRS | 把狀態暫存器的值送到通用暫存器 |
MSR | 把通用暫存器的值傳送到狀態暫存器 |
MUL | 32位乘 |
MVN | 把一個32位數的邏輯“非”送到暫存器 |
ORR | 32位邏輯或 |
PLD | 預裝載提示指令 |
QADD | 有符號32位飽和加 |
QDADD | 有符號雙32位飽和加 |
QSUB | 有符號32位飽和減 |
QDSUB | 有符號雙32位飽和減 |
RSB | 逆向32位減法 |
RSC | 帶進位的逆向32法減法 |
SBC | 帶進位的32位減法 |
SMLAxy | 有符號乘累加(16位*16位)+32位=32位 |
SMLAL | 64位有符號乘累加((32位*32位)+64位=64位) |
SMALxy | 64位有符號乘累加((32位*32位)+64位=64位) |
SMLAWy | 號乘累加((32位*16位)>>16位)+32位=32位 |
SMULL | 64位有符號乘累加(32位*32位)=64位 |
SMULxy | 有符號乘(16位*16位=32位) |
SMULWy | 有符號乘(32位*16位>>16位=32位) |
STC STC2 | 從協處理器中把一個或多個32位值存到記憶體 |
STM | 把多個32位的暫存器值存放到記憶體 |
STR | 把暫存器的值存到一個記憶體的虛地址內間 |
SUB | 32位減法 |
SWI | 軟中斷 |
SWP | 把一個字或者一個位元組和一個暫存器值交換 |
TEQ | 等值測試 |
TST | 位測試 |
UMLAL | 64位無符號乘累加((32位*32位)+64位=64位) |
UMULL | 64位無符號乘累加(32位*32位)=64位 |