指令的一般格式:
{} ,
其中<>為不可省略,{}為可以省略。
注意:opcode、cond、s之間沒有空格,s和rd之間使用空格隔開。
lsl 左移指令
mov r1,r0,lsl#3 //將暫存器r0中的值左移3位後傳送到暫存器r1中
cmp 比較指令
tst 位測試指令cmp r1,r0 //將暫存器r1的值與暫存器r2的值相減,並根據結果來設定cpsr的標誌位
cmp r1,#100 //將暫存器r1的值與立即數100相減,並根據結果來設定cpsr的標誌位
teq 相等測試指令tst r1,#0x01 //將暫存器r1中的值與立即數0x01按位與,並根據是結果來設定cpsr的標誌位
tst r1,#0xfe //將暫存器r1中的值與立即數0xfe按位與,並根據是結果來設定cpsr的標誌位
teq r1,r2 //將暫存器r1中的值與暫存器r1中的值按位異或,並根據是結果來設定cpsr的標誌位
add 加法指令
注意:add、adc、adds、adcs的區別:add r0,r1,r2 //即 r0 = r1 + r2
add r0,r1,#256 //即 r0 = r1 + 256
add r0,r2,r3,lsl#3 //即 r0 = r2 + (r3<<3)
add是不帶進製的加法指令
adc是帶進製的加法指令
----------------------------------------------
adds和adcs後加s是代表更新cpsr狀態
sub 減法指令adds r1,r2,r3 //即 r1 = r2 + r3且更新cpsr狀態
adcs r5,r6,r7 //即 r5 = r6 + r7,帶進製且更新了cpsr狀態
注意:sbc是帶借位的減法指令,其與sbcs、subs使用與加法指令類似。sub r0,r1,r2 //即 r0 = r1 - r2
sub r0,r1,#256 //即 r0 = r1 - 256
sub r0,r2,r3,lsl#3 //即 r0 = r2 - (r3<<3)
and 與指令
and r0, r0,#3 //將暫存器中r0中的值與立即數3按位與,並且將結果放入r0中
注意:and通常用來保留特定位,清零其它位
orr 或指令
orr r1,r1,#3 //將暫存器中r1中的值與立即數3按位或,並且將結果放入r1中
注意:orr通常用來置位特定位
bic 位清除指令
bic r0,r0,#0x0b // 將暫存器r0中值的第0、1、3位清零(0x0b是0000_1011),其餘位保持不變。
mrs 程式狀態暫存器到通用暫存器的資料傳輸指令
mrs和msr的格式: mrs rd,//psr可以是cpsr或spsr
msr 通用暫存器到程式狀態暫存器的資料傳輸指令mrs r0,cpsr //傳輸cpsr中的內容到r0當中
mrs r1,spsr //傳輸spsr中的內容到r1當中
格式: msr rd,_,rm //psr可以是cpsr或spsr,fields為域
程式狀態暫存器可分為4個域:
psr[31:24]為條件標誌位域,用f表示,f為小寫
psr[23:16]為狀態位域,用s表示,s為小寫
psr[15:8]為擴充套件位域,用x表示,x為小寫
psr[7:0]為控制位域,用c表示,c為小寫
注意:mrs和msr一般用於需要改變程式狀態暫存器的內容 或者 是異常處理和程序切換時要保留程式狀態暫存器中的值時。msr cpsr,r0 //傳送r0的內容到cpsr中
msr spsr,r1 //傳送r1的內容到spsr中
msr cpsr_c,r2 //傳送r2的內容到cpsr中,但僅僅修改cpsr中的控制位域
彙編記錄 99 彙編指令
mov 賦值 指令 mov a,b 把 b 的資料傳送到 a 中 有以下形式 1 mov 暫存器,任意 資料 記憶體單元 暫存器 段暫存器 字元 mov ax,9 1 bx ds a 2 mov 記憶體單元,暫存器 段暫存器 mov 2 bx ds 3 mov 段暫存器,暫存器 記憶體單元 mov ...
彙編 常用指令
一 資料傳送指令 mov 傳送資料 兩個運算元 xchg 交換指令 兩個運算元 movsx 擴充套件資料指令 兩個運算元 movzx 擴充套件資料指令 兩個運算元 xlat 查表指令 無運算元 push pop 入棧,出棧 乙個運算元 lea 位址傳送指令 兩個運算元 in out 輸入輸出指令 兩...
彙編常用指令
一 資料傳輸指令i.4.標誌傳送指令.lahf 標誌暫存器傳送,把標誌裝入ah.sahf 標誌暫存器傳送,把ah內容裝入標誌暫存器.pushf 標誌入棧.popf 標誌出棧.pushd 32位標誌入棧.popd 32位標誌出棧.二 算術運算指令 add 加法.adc 帶進製加法.inc 加 1.aa...