偶有一日用到彙編,發現有一大段**讀起來竟是如此費力,很多指令由於長時間不用忘記了。上網查了一下,歸類如下:
mov(move) 傳送指令
push 入棧指令
pop 出棧指令
xchg(exchang) 交換指令
xlat(translate) 換碼指令
lea (load effective address) 有效位址送暫存器指令
lds(load ds with pointer) 指標送暫存器和ds指令
les(load es with pointer) 指標送暫存器和es指令
lahf(load ah with flags) 標誌位送ah指令
sahf(store ah into ***s) ah送標誌暫存器指令
pushf(push the flags) 標誌進棧指令
popf(pop the flags) 標誌出棧指令
add 加法指令
adc 帶進製加法指令
inc 加1指令
sub(subtract) 不帶借位的減法指令
sbb(suvtrach with borrow) 帶借位的減法指令
dec(decrement) 減1指領
neg(negate) 求補指令
cmp(compare) 比較指令
mul(unsinged multiple) 無符號數乘法指令
imul(signed mul tiple) 有符號數乘法指令
div(unsigned divide) 無符號數除法指令
idiv(signed divide) 有符號數除法指令
cbw(count byte to word) 位元組轉換為字指令
cwd(count word to doble word) 字轉換為雙字指令
daa 壓縮的bcd碼加法十進位制調整指令
das 壓縮的bcd碼減法十進位制調整指令
aaa 非壓縮的bcd碼加法十進位制調整指令
aas 非壓縮的bcd碼加法十進位制調整指令
and 邏輯與指令
or 邏輯或指令
xor 邏輯異或指令
not 邏輯非指令
test 測試指令
shl(shift logical letf) 邏輯左移指令
shr(shift logical right) 邏輯右移指令
rol(rotate left ) 迴圈左移指令p58
ror(rotate right) 迴圈右移指令p58
rcl(rotate left through carry) 帶進製迴圈左移
rcr(rotate right through carry) 帶進製迴圈左移
movs(move string) 串傳送指令
stos(store into string) 存入串指令
lods(load from string) 從串取指令
rep(repeat) 重複操作前
cld(clear direction flag) 清除方向標誌指令
std(set direction flag) 設定方向標誌指令
cmps(compare string) 串比較指令
scas(scan string) 串掃瞄指令
repe/repz(repeat while equal/zero)相等/為零時重複操作字首
repne/repnz(repeat while not equal/zero)不相等/不為零進重複字首
in(input) 輸入指令
out(output) 輸出指令
jmp(jump) 無條件轉移指令
jz,jnz,js,jns,jo,jno,jp,jnp,jb,jnb,jbe,jnbe,jl,jnl,jle,jnle,jcxz 條件轉移指令
loop 迴圈指令p70
loopz/loope 為零/相等時迴圈指令
loopnz/loopne 不為零/不相等時迴圈指令
call 子程式呼叫指令
ret(retun) 子程式返回指令
clc(clear carry) 進製位置0指令
cmc(complement carry) 進製位求反指令
src(set carry) 進製位置1指令
nop(no operetion) 無操作指令
hlt(halt) 停機指令
offset 返回偏移位址
seg 返回段位址
equ(=) 等值語句
purge 解除語句
dup 運算元欄位用複製操作符
segment,ends 段定義指令
assume 段位址分配指令
org 起始偏移位址設定指令
$ 位址計數器的當前值
proc,endp 過程定義語句
name,title,end 程式開始結束語句
macro,endm 巨集定義指令
jz opr //結果為零轉移
jnz opr //結果不為零轉移
js opr //結果為負轉移
jns opr //結果為正轉移
jo opr //溢位轉移
jno opr //不溢位轉移
jp opr //結果為偶轉移
jnp opr //結果為奇轉移
jc opr //有進製轉移
jnc opr //無進製轉移
常用彙編指令
1 加減指令 2 adr指令 adr是小範圍的位址讀取偽指令,ldr是大範圍的讀取位址偽指令。可實際上adr是將基於pc相對偏移的位址值或基於暫存器相對位址值讀取的為指令,而ldr用於載入32為立即數或乙個位址到指定的暫存器中。到這兒就會看到其中的區別了。如果在程式中想載入某個函式或者某個在聯接時候...
常用彙編指令
一 資料傳輸指令 它們在存貯器和 暫存器 寄存 器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依...
常用彙編指令
1 資料傳送指令 mov move r1,r2 r1 r2 move r1,4096 r1 4096 2 偽指令ldr 用於將乙個大於八位的資料裝入暫存器 ldr r1,0x123456789 r1 0x123456789 ldr r1,label 獲取絕對位址,即label的位址 label 3 ...