指令
功能adc
進製的32位數加法
add32位數相加
and32位數的邏輯與
b在32m空間內的相對跳轉指令
beq相等則跳轉(branch if equal)
bne不相等則跳轉(branch if not equal)
bge大於或等於跳轉(branch if greater than or equa)
bgt大於跳轉(branch if greater than)
bic32位數的邏輯位清零
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比較兩個數的相反數
c***2位數比較
eor32位邏輯異或
ldc ldc2
從協處理器取乙個或多個32位值
ldm從記憶體送多個32位字到arm暫存器
ldr從虛擬位址取乙個單個的32位值
mcr mcr2 mcrr
從暫存器送資料到協處理器
mla32位乘累加
mov傳送乙個32位數到暫存器
mrc mrc2 mrrc
從協處理器傳送資料到暫存器
mrs把狀態暫存器的值送到通用暫存器
msr把通用暫存器的值傳送到狀態暫存器
mul32位乘
mvn把乙個32位數的邏輯「非」送到暫存器
orr32位邏輯或
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把暫存器的值存到乙個記憶體的虛位址內間
sub32位減法
swi軟中斷
swp把乙個字或者乙個位元組和乙個暫存器值交換
teq等值測試
tst位測試
umlal
64位無符號乘累加((32位*32位)+64位=64位)
umull
64位無符號乘累加(32位*32位)=64位
ARM 指令列表
adc 帶進製的32位數加法 add32位數相加 and32位數的邏輯與 b在32m空間內的相對跳轉指令 beq相等則跳轉 branch if equal bne不相等則跳轉 branch if not equal bge大於或等於跳轉 branch if greater than or equa ...
arm指令 ldr指令
ldr指令ldr作為指令 偽指令在arm彙編中。ldr指令格式 ldr 目的暫存器,儲存器位址 ldr r0,r1 將儲存器位址為r1的字資料讀入暫存器r0。ldr r0,r1,r2 將儲存器位址為r1 r2的字資料讀入暫存器r0。ldr r0,r1,8 將儲存器位址為r1 8的字資料讀入暫存器r0...
ARM彙編指令
b或bl指令引起處理器轉移到 子程式名 也就是位址 處開始執行,這兩個指令都是相對跳轉指令。兩者的不同之處在於bl指令在轉移到子程式執行之前,將其下一條指令的位址拷貝到r14 lr,鏈結暫存器 由於bl指令儲存了下條指令的位址,因此使用指令 mov pc lr 即可實現子程式的返回。而b指令則無法實...