一、書寫格式
標號
操作碼 操作數1, 操作數2, ... ; 注釋
標號是可選的,可寫可不寫,但如果有必須頂格寫,其作用是讓匯編器計算程序轉移的地址。
操作碼是指令的助記符,其前面必須有一個空格,通常用TAB。
操作數跟在操作碼后面,通常,第一個操作數都是本條指令執行結果的存儲地。
注釋均已";"開頭
立即數,也就是高級語言的常量,必須以#開頭。
例如:
MOV R0, #0x12 ; R0 <-- 0x12
可以使用EQU來定義常數,且常數的定義必須頂格寫。
例如:
PI EQU 3.14.5926
二、
| 操作 | 匯編指令 |
| 寄存器值與寄存器值及 C標志相加 | ADC <Rd>, <Rm> |
| 3位立即數與寄存器值相加 | ADD <Rd>, <Rn>, #<immed_3> |
| 8位立即數與寄存器值相加 | ADD <Rd>, #<immed_8> |
| 低寄存器值與低寄存器值相加 | ADD <Rd>, <Rn>, <Rm> |
| 高寄存器值與低或高寄存器值相加 | ADD <Rd>, <Rm> |
| PC加 4(8位立即數) | ADD <Rd>, PC, #<immed_8>*4 |
| SP加 4(8位立即數) | ADD <Rd>, SP, #<immed_8>*4 |
| SP加 4(7位立即數) | ADD <Rd>, SP, #<immed_7>*4或 ADD SP, SP, #<immed_7>*4 |
| 寄存器值按位與 | AND <Rd>, <Rm> |
| 算術右移,移位次數取決於立即數值 | ASR <Rd>, <Rm>, #<immed_5> |
| 算術右移,移位次數取決於寄存器中的值 | ASR <Rd>, <Rs> |
| 條件分支 | B<cond> <target address> |
| 無條件分支 | B<tartet address> |
| 位清零 | BIC <Rd>, <Rs> |
| 軟件斷點 | BKPT <immed_8> |
| 帶鏈接分支 | BL <Rm> |
| 比較結果不為零時分支 | CBNZ <Rn>, <label> |
| 比較結果為零時分支 | CBZ <Rn>, <Rm> |
| 將寄存器值取反與另一個寄存器值比較 | CMN <Rn>, <Rm> |
| 與 8位立即數比較 | CMP <Rn>, #<immed_8> |
| 寄存器比較 | CMP <Rn>, <Rm> |
| 高寄存器與高或低寄存器比較 | CMP <Rn>, <Rm> |
| 改變處理器狀態 | CPS <effect>, <iflags> |
| 將高或低寄存器的值復制到另一個高或低寄 存器中 |
CPY <Rd>, <Rm> |
| 寄存器的值按位異或 | EOR <Rd>, <Rm> |
| IT<cond> IT<x> <cond> IT<x><y> <cond> IT<x><y><z> <cond> |
以下一條指令為條件,以下面兩條指令為條 件,以下面三條指令為條件,以下面四條指令 為條件 |
| 多個連續的存儲器字加載 | LDMIA <Rn>!, <register> |
| 將基址寄存器與 5位立即數偏移的和的地址 處的數據加載到寄存器中 |
LDR <Rd>, [<Rn>, #<immed_5*4>] |
| 將基址寄存器與寄存器偏移的和的地址處的 數據加載到寄存器中 |
LDR <Rd>, [<Rn>, <Rm>] |
| 將 PC與 8位立即數偏移的和的地址處的數據 加載到寄存器中 |
LDR <Rd>, [PC, #<immed_8>*4] |
| 將 SP與 8位立即數偏移的和的地址處的數據 加載到寄存器中 |
LDR <Rd>, [SP, #<immed_8>*4] |
| 將寄存器與 5位立即數偏移的和的地址處的 字節[7:0]加載到寄存器中 |
LDRB <Rd>, [<Rn>, #<immed_5>] |
| 將寄存器與寄存器偏移的和的地址處的字節 [7:0]加載到寄存器中 |
LDRB <Rd>, [<Rn>, <Rm>] |
| 將寄存器與 5位立即數偏移的和的地址處的 半字[15:0]加載到寄存器中 |
LDRH <Rd>, [<Rn>, #<immed_5>*2] |
| 將寄存器與寄存器偏移的和的地址處的半字 [15:0]加載到寄存器中 |
LDRH <Rd>, [<Rn>, <Rm>] |
| 將寄存器與寄存器偏移的和的地址處的帶符 號字節 [7:0]加載到寄存器中 |
LDRSB <Rd>, [<Rn>, <Rm>] |
| 將寄存器與寄存器偏移的和的地址處的帶符 號半字 [15:0]加載到寄存器中 |
LDRSH <Rd>, [<Rn>, <Rm>] |
| 邏輯左移,移位次數取決於立即數值 | LSL <Rd>, <Rm>, #<immed_5> |
| 邏輯左移,移位次數取決於寄存器中的值 | LSL <Rd>, <Rs> |
| 邏輯右移,移位次數取決於立即數值 | LSR <Rd>, <Rm>, #<immed_5> |
| 邏輯右移,移位次數取決於寄存器中的值 | LSR <Rd>, <Rs> |
| 將 8位立即數傳送到目標寄存器 | MOV <Rd>, #<immed_8> |
| 將低寄存器值傳送給低目標寄存器 | MOV <Rd>, <Rn> |
| 將高或低寄存器值傳送給高或低目標寄存器 | MOV <Rd>, <Rm> |
| 寄存器值相乘 | MUL <Rd>, <Rm> |
| 將寄存器值取反后傳送給目標寄存器 | MVN <Rd>, <Rm> |
| 將寄存器值取負並保存在目標寄存器中 | NEG <Rd>, <Rm> |
| 無操作 | NOP <C> |
| 將寄存器值按位作邏輯或操作 | ORR <Rd>, <Rm> |
| 寄存器出棧 | POP <寄存器> |
| 寄存器和 PC出棧 | POP <寄存器, PC> |
| 寄存器壓棧 | PUSH <registers> |
| 寄存器和 LR壓棧 | PUSH <registers, LR> |
| 將字內的字節逆向(reverse)並復制到寄存器 中 |
REV <Rd>, <Rn> |
| 將兩個半字內的字節逆向並復制到寄存器中 | REV16 <Rd>, <Rn> |
| 將低半字[15:0]內的字節逆向並將符號位擴 展,復制到寄存器中。 |
REVSH <Rd>, <Rn> |
| 循環右移,移位次數由寄存器中的值標識 | ROR <Rd>, <Rs> |
| 寄存器中的值減去寄存器值和C標志 | SBC <Rd>, <Rm> |
| 發送事件 | SEV <c> |
| 將多個寄存器字保存到連續的存儲單元中 | STMIA <Rn>!, <registers> |
| 將寄存器字保存到寄存器與5位立即數偏移的 和的地址中 |
STR <Rd>, [<Rn>, #<immed_5>*4] |
| 將寄存器字保存到寄存器地址中 | STR <Rd>, [<Rn>, <Rm>] |
| 將寄存器字保存到SP與8位立即數偏移的和的 地址中 |
STR <Rd>, [SP, #<immed_8> * 4] |
| 將寄存器字節[7:0]保存到寄存器與 5位立即 數偏移的和的地址中 |
STRB <Rd>, [<Rn>, #<immed_5>] |
| 將寄存器字節[7:0]保存到寄存器地址中 | STRB <Rd>, [<Rn>, <Rm>] |
| 將寄存器半字[15:0]保存到寄存器與 5位立即 數偏移的和的地址中 |
STRH <Rd>, [<Rn>, #<immed_5> * 2] |
| 將寄存器半字[15:0]保存到寄存器地址中 | STRH <Rd>, [<Rn>, #<immed_5> * 2] |
| 寄存器值減去3位立即數 | STRH <Rd>, [<Rn>, #<immed_5> * 2] |
| 寄存器值減去8位立即數 | SUB <Rd>, #<immed_8> |
| 寄存器值減去寄存器值 | SUB <Rd>, <Rn>, <Rm> |
| SP減4(7位立即數) | SUB SP, #<immed_7> * 4 |
| 操作系統服務調用,帶8位立即數調用代碼 | SVC <immed_8> |
| 從寄存器中提取字節[7:0],傳送到寄存器中, 並用符號位擴展到32位 |
SXTB <Rd>, <Rm> |
| 從寄存器中提取半字[15:0],傳送到寄存器中, 並用符號位擴展到32位 |
SXTH <Rd>, <Rm> |
| 將寄存器與另一個寄存器相與,測試寄存器中 的置位的位 |
TST <Rn>, <Rm> |
| 從寄存器中提取字節[7:0],傳送到寄存器中, 並用零位擴展到 32位 |
UXTB <Rd>, <Rm> |
| 從寄存器中提取半字[15:0],傳送到寄存器中, 並用零位擴展到32位 |
UXTH <Rd>, <Rm> |
| 等待事件 | WFE <c> |
| 等待中斷 | WFI <c> |
32位指令
| 操作 | 匯編指令 |
| ADC{S}.W <Rd>, <Rn>, #<modify_constant(immed_12> |
寄存器值與12位立即數及C位相加 |
| 寄存器值與移位后的寄存器值及C位相加 | ADC{S}.W <Rd>, <Rn>, <Rm>{, <shift>} |
| ADD{S}.W <Rd>, <Rn>,#<modify_constant(immed_12)> |
寄存器值與12位立即數相加 |
| 寄存器值與移位后的寄存器值相加 | ADD{S}.W <Rd>, <Rm>{, <shift>} |
| 寄存器值與12位立即數相加 | ADDW.W <Rd>, <Rn>, #<immed_12> |
| AND{S}.W <Rd>, <Rn>, #<modify_constant(immed_12> |
寄存器值與12位立即數按位與 |
| 寄存器值與移位后的寄存器值按位與 | AND{S}.W <Rd>, <Rn>, Rm>{, <shift>} |
| 算術右移,移位次數取決於寄存器值 | ASR{S}.W <Rd>, <Rn>, <Rm> |
| 條件分支 | B{cond}.W <label> |
| 位區清零 | BFC.W <Rd>, #<lsb>, #<width> |
| 將一個寄存器的位區插入另一個寄存器中 | BFI.W <Rd>, <Rn>, #<lsb>, #<width> |
| 12位立即數取反與寄存器值按位與 | BIC{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)> |
| 移位后的寄存器值取反與寄存器值按位與 | BIC{S}.W <Rd>, <Rn>, {, <shift>} |
| 帶鏈接的分支 | BL <label> |
| 帶鏈接的分支(立即數) | BL<c> <label> |
| 無條件分支 | B.W <label> |
| 返回寄存器值中零的數目 | CLZ.W <Rd>, <Rn> |
| 寄存器值與12位立即數兩次取反后的值比較 | CMN.W <Rn>, #<modify_constant(immed_12)> |
| 寄存器值與移位后的寄存器值兩次取反后的 值比較 |
CMN.W <Rn>, <Rm>{, <shift>} |
| 寄存器值與12位立即數比較 | CMP.W <Rn>, #<modify_constant(immed_12)> |
| 寄存器值與移位后的寄存器值比較 | CMP.W <Rn>, <Rm>{, <shift>} |
| 數據存儲器排序(barrier) | DMB <c> |
| 數據同步排序(barrier) | DSB <c> |
| 寄存器值與12位立即數作異或操作 | EOR{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)> |
| 寄存器值與移位后的寄存器值作異或操作 | EOR{S}.W <Rd>, <Rn>, <Rm>{, <shift>} |
| 指令同步排序(barrier) | ISB <c> |
| 多存儲器寄存器加載,加載后加 1或加載前 減 1 |
LDM{IA|DB}.W <Rn>{!}, <registers> |
| 保存寄存器地址與12位立即數偏移的和的地 址處的數據字 |
LDR.W <Rxf>, [<Rn>, #<offset_12>] |
| 將寄存器地址與12位立即數偏移的和的地址 處的數據字保存到PC中 |
LDR.W PC, [<Rn>, #<offset_12>] |
| 將基址寄存器地址的8位立即數偏移的地址 處的數據字保存到PC中,后索引 |
LDR.W PC, #<+/-<offset_8> |
| 保存基址寄存器地址的8位立即數偏移的地 址處的數據字,后索引 |
LDR.W <Rxf>, [<Rn>], #+/–<offset_8> |
| 保存基址寄存器地址的8位立即數偏移的地 址處的數據字,前索引 |
LDR.W <Rxf>, [<Rn>, #<+/–<offset_8>]! |
| 將基址寄存器地址的8位立即數偏移的地址 處的數據字保存到PC中,前索引 |
LDR.W PC, [<Rn>, #+/–<offset_8>]! |
| 保存寄存器地址左移0, 1, 2或3個位置后的 地址處的數據字 |
LDR.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] |
| 將寄存器地址左移0, 1, 2或3個位置后的地 址處的數據字保存到PC中 |
LDR.W PC, [<Rn>, <Rm>{, LSL #<shift>}] |
| 保存PC地址的12位立即數偏移的地址處的數 據字 |
LDR.W <Rxf>, [PC, #+/–<offset_12>] |
| 將PC地址的12位立即數偏移的地址處的數據 字保存到PC中 |
LDR.W PC, [PC, #+/–<offset_12>] |
| 保存基址寄存器地址與12位立即數偏移的和 的地址處的字節[7:0] |
LDRB.W <Rxf>, [<Rn>, #<offset_12>] |
| 保存基址寄存器地址的8位立即數偏移的地 址處的字節[7:0],后索引 |
LDRB.W <Rxf>. [<Rn>], #+/-<offset_8> |
| 保存寄存器地址左移0, 1, 2或3個位置后的 地址處的字節[7:0] |
LDRB.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] |
| 保存基址寄存器地址的8位立即數偏移的地 址處的字節[7:0],前索引 |
LDRB.W <Rxf>, [<Rn>, #<+/–<offset_8>]! |
| 保存PC地址的12位立即數偏移的地址處的字 節 |
LDRB.W <Rxf>, [PC, #+/–<offset_12>] |
| 保存寄存器地址8位偏移4的地址處的雙字, 前索引 |
LDRD.W <Rxf>, <Rxf2>, [<Rn>, #+/–<offset_8> * 4]{!} |
| 保存寄存器地址8位偏移4的地址處的雙字, 后索引 |
LDRD.W <Rxf>, <Rxf2>, [<Rn>], #+/–<offset_8> * 4 |
| 保存基址寄存器地址與12位立即數偏移的和 的地址處的半字[15:0] |
LDRH.W <Rxf>, [<Rn>, #<offset_12>] |
| 保存基址寄存器地址的8位立即數偏移的地 址處的半字[15:0],前索引 |
LDRH.W <Rxf>, [<Rn>, #<+/–<offset_8>]! |
| 保存基址寄存器地址的8位立即數偏移的地 址處的半字[15:0],后索引 |
LDRH.W <Rxf>. [<Rn>], #+/-<offset_8> |
| 保存基址寄存器地址左移0, 1, 2或3個位置 后的地址處的半字[15:0] |
LDRH.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] |
| 保存PC地址的12位立即數偏移的地址處的半 字 |
LDRH.W <Rxf>, [PC, #+/–<offset_12>] |
| 保存基址寄存器地址與12位立即數偏移的和 的地址處的帶符號字節[7:0] |
LDRSB.W <Rxf>, [<Rn>, #<offset_12>] |
| 保存基址寄存器地址的8位立即數偏移的地 址處的帶符號字節[7:0],后索引 |
LDRSB.W <Rxf>. [<Rn>], #+/-<offset_8> |
| 保存基址寄存器地址的8位立即數偏移的地 址處的帶符號字節[7:0],前索引 |
LDRSB.W <Rxf>, [<Rn>, #<+/–<offset_8>]! |
| 保存寄存器地址左移0, 1, 2或3個位置后的 地址處的帶符號字節[7:0] |
LDRSB.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] |
| 保存PC地址的12位立即數偏移的地址處的帶 符號字節 |
LDRSB.W <Rxf>, [PC, #+/–<offset_12>] |
| 保存基址寄存器地址與12位立即數偏移的和 的地址處的帶符號半字[15:0] |
LDRSH.W <Rxf>, [<Rn>, #<offset_12>] |
| 保存基址寄存器地址的8位立即數偏移的地 址處的帶符號半字[15:0],后索引 |
LDRSH.W <Rxf>. [<Rn>], #+/-<offset_8> |
| 保存基址寄存器地址的8位立即數偏移的地 址處的帶符號半字[15:0],前索引 |
LDRSH.W <Rxf>, [<Rn>, #<+/–<offset_8>]! |
| 保存寄存器地址左移0, 1, 2或3個位置后的 地址處的帶符號半字[15:0] |
LDRSH.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] |
| 保存PC地址的12位立即數偏移的地址處的帶 符號半字 |
LDRSH.W <Rxf>, [PC, #+/–<offset_12>] |
| 邏輯左移,移位次數由寄存器中的值標識 | LSL{S}.W <Rd>, <Rn>, <Rm> |
| 邏輯右移,移位次數由寄存器中的值標識 | LSR{S}.W <Rd>, <Rn>, <Rm> |
| 將兩個帶符號或無符號的寄存器值相乘,並 將低32位與寄存器值相加 |
MLA.W <Rd>, <Rn>, <Rm>, <Racc> |
| 將兩個帶符號或無符號的寄存器值相乘,並 將低32位與寄存器值相減 |
MLS.W <Rd>, <Rn>, <Rm>, <Racc> |
| 將12位立即數傳送到寄存器中 | MOV{S}.W <Rd>, #<modify_constant(immed_12)> |
| 將移位后的寄存器值傳送到寄存器中 | MOV{S}.W <Rd>, <Rm>{, <shift>} |
| 將16位立即數傳送到寄存器的高半字[31:16] 中 |
MOVT.W <Rd>, #<immed_16> |
| 將16位立即數傳送到寄存器的低半字[15:0] 中,並將高半字[31:16]清零 |
MOVW.W <Rd>, #<immed_16> |
| 將狀態傳送到寄存器中 | MRS<c> <Rd>, <psr> |
| 傳送到狀態寄存器中 | MSR<c> <psr>_<fields>,<Rn> |
| 將兩個帶符號或不帶符號的寄存器值相乘 | MUL.W <Rd>, <Rn>, <Rm> |
| 無操作 | NOP.W |
| 將寄存器值與12位立即數作邏輯“或非”操作 | ORN{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)> |
| 將寄存器值與移位后的寄存器值作邏輯“或 非”操作 |
ORN[S}.W <Rd>, <Rn>, <Rm>{, <shift>} |
| 將寄存器值與12位立即數作邏輯“或”操作 | ORR{S}.W <Rd>, <Rn>, #<modify_constant(immed_12) |
| 將寄存器值與移位后的寄存器值作邏輯“或 ” 操作 |
ORR{S}.W <Rd>, <Rn>, <Rm>{, <shift>} |
| 將位順序逆向 | RBIT.W <Rd>, <Rm> |
| 將字內的字節逆向 | REV.W <Rd>, <Rm> |
| 將每個半字內的字節逆向 | REV16.W <Rd>, <Rn> |
| 將低半字內的字節逆向並用符號擴展 | REVSH.W <Rd>, <Rn> |
| 循環右移,移位次數取決於寄存器中的值 | ROR{S}.W <Rd>, <Rn>, <Rm> |
| 寄存器值與12位立即數相減 | RSB{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)> |
| 寄存器值與移位后的寄存器值相減 | RSB{S}.W <Rd>, <Rn>, <Rm>{, <shift>} |
| 寄存器值與12位立即數及C位相減 | SBC{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)> |
| 寄存器值與移位后的寄存器值及C位相減 | SBC{S}.W <Rd>, <Rn>, <Rm>{, <shift>} |
| 將所選的位復制到寄存器中並用符號擴展 | SBFX.W <Rd>, <Rn>, #<lsb>, #<width> |
| 帶符號除法 | SDIV<c> <Rd>,<Rn>,<Rm> |
| 發送事件 | SEV<c> |
| 將帶符號半字相乘並用符號擴展到2個寄存 器值 |
SMLAL.W <RdLo>, <RdHi>, <Rn>, <Rm> |
| 兩個帶符號寄存器值相乘 | SMULL.W <RdLo>, <RdHi>, <Rn>, <Rm> |
| 帶符號飽和操作 | SSAT <c> <Rd>, #<imm>, <Rn>{, <shift>} |
| 多個寄存器字保存到連續的存儲單元中 | STM{IA|DB}.W <Rn>{!}, <registers> |
| 寄存器字保存到寄存器地址與12位立即數偏 移的和的地址中 |
STR.W <Rxf>, [<Rn>, #<offset_12>] |
| 寄存器字保存到寄存器地址的8位立即數偏 移的地址中,后索引 |
STR.W <Rxf>, [<Rn>], #+/–<offset_8> |
| 寄存器字保存到寄存器地址移位0, 1, 2或3 個位置的地址中 |
STR.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] |
| 寄存器字保存到寄存器地址的8位立即數偏 移的地址中,前索引 |
STR{T}.W <Rxf>, [<Rn>, #+/–<offset_8>]{!} |
| 寄存器字節[7:0]保存到寄存器地址的 8位立 即數偏移的地址中,前索引 |
STRB{T}.W <Rxf>, [<Rn>, #+/–<offset_8>]{!} |
| 寄存器字節[7:0]保存到寄存器地址與 12位 立即數偏移的和的地址中 |
STRB.W <Rxf>, [<Rn>, #<offset_12>] |
| 寄存器字節[7:0]保存到寄存器地址的 8位立 即數偏移的地址中,后索引 |
STRB.W <Rxf>, [<Rn>], #+/–<offset_8> |
| 寄存器字節保存到寄存器地址移位0, 1, 2或 3個位置的地址中 |
STRB.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] |
| 存儲雙字,前索引 | STRD.W <Rxf>, <Rxf2>, [<Rn>, #+/–<offset_8> * 4]{!} |
| 存儲雙字,后索引 | STRD.W <Rxf>, <Rxf2>, [<Rn>], #+/–<offset_8> * 4 |
| 寄存器半字[15:0]保存到寄存器地址與 12位 立即數偏移的和的地址中 |
STRH.W <Rxf>, [<Rn>, #<offset_12>] |
| 寄存器半字保存到寄存器地址移位0, 1, 2或 3個位置的地址中 |
STRH.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}] |
| 寄存器半字保存到寄存器地址的8位立即數 偏移的地址中,前索引 |
STRH{T}.W <Rxf>, [<Rn>, #+/–<offset_8>]{!} |
| 寄存器半字保存到寄存器地址的8位立即數 偏移的地址中,后索引 |
STRH.W <Rxf>, [<Rn>], #+/–<offset_8> |
| 寄存器值與12位立即數相減 | SUB{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)> |
| 寄存器值與移位后的寄存器值相減 | SUB{S}.W <Rd>, <Rn>, <Rm>{, <shift>} |
| 寄存器值與12位立即數相減 | SUBW.W <Rd>, <Rn>, #<immed_12> |
| 將字節符號擴展到32位 | SXTB.W <Rd>, <Rm>{, <rotation>} |
| 將半字符號擴展到32位 | SXTH.W <Rd>, <Rm>{, <rotation>} |
| 表格分支字節 | TBB [<Rn>, <Rm>] |
| 表格分支半字 | TBH [<Rn>, <Rm>, LSL #1] |
| 寄存器值與12位立即數作邏輯“異或”操作 | TEQ.W <Rn>, #<modify_constant(immed_12)> |
| 寄存器值與移位后的寄存器值作邏輯“異或 ” 操作 |
TEQ.W <Rn>, <Rm>{, <shift} |
| 寄存器值與12位立即數作邏輯“與”操作 | TST.W <Rn>, #<modify_constant(immed_12)> |
| 寄存器值與移位后的寄存器值作邏輯“與”操 作 |
TST.W <Rn>, <Rm>{, <shift>} |
| 將寄存器的位區復制到寄存器中,並用零擴 展到32位 |
UBFX.W <Rd>, <Rn>, #<lsb>, #<width> |
| 無符號除法 | UDIV<c> <Rd>,<Rn>,<Rm> |
| 兩個無符號寄存器值相乘並與兩個寄存器值 相加 |
UMLAL.W <RdLo>, <RdHi>, <Rn>, <Rm> |
| 兩個無符號寄存器值相乘 | UMULL.W <RdLo>, <RdHi>, <Rn>, <Rm> |
| 無符號飽和操作 | USAT <c> <Rd>, #<imm>, <Rn>{, <shift>} |
| 將無符號字節復制到寄存器中並用零擴展到 32位 |
UXTB.W <Rd>, <Rm>{, <rotation>} |
| 將無符號半字復制到寄存器中並用零擴展到 32位 |
UXTH.W <Rd>, <Rm>{, <rotation>} |
| 等待事件 | WFE.W |
| 等待中斷 | WFI.W |
