一、資料傳輸指令
8088 彙編跳轉
cmp a,b 比較a與b
mov a,b 把b的值送給a
ret 返回主程式
nop 無作用,英文「no operation」的簡寫,意思是「do nothing」
call 呼叫子程式
je 或jz 若相等則跳
jne或jnz 若不相等則跳
jmp 無條件跳
jb 若小於則跳
ja 若大於則跳
jg 若大於則跳
jge 若大於等於則跳
jl 若小於則跳
jle 若小於等於則跳
pop 出棧
push 壓棧
mov功能: 把源運算元送給目的運算元
語法: mov 目的運算元,源運算元
格式: mov r1,r2
mov r,m
mov m,r
mov r,data
xchg
功能: 交換兩個運算元的資料
語法: xchg
格式: xchg r1,r2 xchg m,r xchg r,m
push,pop
功能: 把運算元壓入或取出堆疊
語法: push 運算元 pop 運算元
格式: push r push m push data pop r pop m
pushf,popf,pusha,popa
功能: 堆疊指令群
格式: pushf popf pusha popa
lea,lds,les
功能: 取位址至暫存器
語法: lea r,m lds r,m les r,m
xlat(xlatb)
功能: 查表指令
語法: xlat xlat m
算數運算指令
add,adc
功能: 加法指令
語法: add op1,op2 adc op1,op2
格式: add r1,r2 add r,m add m,r add r,data
影響標誌: c,p,a,z,s,o
sub,sbb
功能:減法指令
語法: sub op1,op2 sbb op1,op2
格式: sub r1,r2 sub r,m sub m,r sub r,data sub m,data
影響標誌: c,p,a,z,s,o
inc,dec
功能: 把op的值加一或減一
語法: inc op dec op
格式: inc r/m dec r/m
影響標誌: p,a,z,s,o
neg功能: 將op的符號反相(取二進位制補碼)
語法: neg op
格式: neg r/m
影響標誌: c,p,a,z,s,o
mul,imul
功能: 乘法指令
語法: mul op imul op
格式: mul r/m imul r/m
影響標誌: c,p,a,z,s,o(僅imul會影響s標誌)
div,idiv
功能:除法指令
語法: div op idiv op
格式: div r/m idiv r/m
cbw,cwd
功能: 有符號數擴充套件指令
語法: cbw cwd
aaa,aas,aam,aad
功能: 非壓bcd碼運算調整指令
語法: aaa aas aam aad
影響標誌: a,c(aaa,aas) s,z,p(aam,aad)
daa,das
功能: 壓縮bcd碼調整指令
語法: daa das
影響標誌: c,p,a,z,s
位運算指令集
and,or,xor,not,test
功能: 執行bit與bit之間的邏輯運算
語法: and r/m,r/m/data or r/m,r/m/data xor r/m,r/m/data test r/m,r/m/data not r/m
影響標誌: c,o,p,z,s(其中c與o兩個標誌會被設為0) not指令不影響任何標誌位
shr,shl,sar,sal
功能: 移位指令
語法: shr r/m,data/cl shl r/m,data/cl sar r/m,data/cl sal r/m,data/cl
影響標誌: c,p,z,s,o
ror,rol,rcr,rcl
功能: 迴圈移位指令
語法: ror r/m,data/cl rol r/m,data/cl rcr r/m,data/cl rcl r/m,data/cl
影響標誌: c,p,z,s,o
程式流程控制指令集
clc,stc,cmc
功能: 設定進製標誌
語法: clc stc cmc
標誌位: c
cld,std
功能: 設定方向標誌
語法: cld std
標誌位: d
cli,sti
功能: 設定中斷標誌
語法: cli sti
標誌位: i
cmp功能: 比較op1與op2的值
語法: cmp r/m,r/m/data
標誌位: c,p,a,z,o
jmp功能: 跳往指定位址執行
語法: jmp 位址
jxx功能: 當特定條件成立則跳往指定位址執行
語法: jxx 位址
注:a: above,當c=0,z=0時成立
b: below,當c=1時成立
c: carry,當弁時成立 cxz: cx暫存器的值為0(zero)時成立
e: equal,當z=1時成立
g: greater(大於),當z=0且s=0時成立
l: less(小於),當s不為零時成立
n: not(相反條件),需和其它符號配合使用
o: overflow,o=1時成立
p: parity,p=1時成立
pe: parity even,p=1時成立
po: parity odd,p=0時成立
s: sign,s=1時成立
z: zero,z=1時成立
loop
功能: 迴圈指令集
語法: loop 位址
loope(z)
位址 loopne(z) 位址
標誌位: 無
call,ret
功能: 子程式呼叫,返回指令
語法: call 位址 ret ret n
標誌位: 無
int,iret
功能: 中斷呼叫及返回指令
語法: int n iret
標誌位: 在執行int時,cpu會自動將標誌暫存器的值入棧,在執行iret時則會將堆疊中的標誌值彈回暫存器
字串操作指令集
movsb,movsw,movsd
功能: 字串傳送指令
語法: movsb movsw movsd
標誌位: 無
cmpsb,cmpsw,cmpsd
功能: 字串比較指令
語法: cmpsb cmpsw cmpsd
標誌位: c,p,z,s,o
scasb,scasw
功能: 字串搜尋指令
語法: scasb scasw
標誌位: c,p,z,s,o
lodsb,lodsw,stosb,stosw
功能: 字串載入或存貯指令
語法: lodsb lodsw stosb stosw
標誌位: 無
rep,repe,repne
功能: 重複字首指令集
語法: rep 指令s repe 指令s repne 指令s
標誌位: 依指令s而定
逆向 x86彙編串操作指令集合
rep cx 0,重複執行字串指令 repz repe cx 0,且zf 1,相同時,重複執行字串指令 repnz repne cx 0,且zf 0,不同時,重複執行字串指令 cld 置df 0,edi std 置df 1,edi 1 movs movsb movsw movsd 1 從esi拷貝資...
8086組合語言指令集
mov 功能 把源運算元送給目的運算元語法 mov 目的運算元,源運算元格式 mov r1,r2 mov r,m mov m,r movr,data xchg 功能 交換兩個運算元的資料語法 xchg 格.8086 8088組合語言指令集 資料傳送指令集 mov 功能 把源運算元送給目的運算元 語法...
X86彙編指令詳解
x86彙編基本分為七大體系 分別是 1 資料傳送指令 2 算術運算指令 3 邏輯運算指令 4 串操作指令 5 控制轉移指令 6 處理器控制指令 7 保護方式指令 先介紹資料傳送指令集 1 資料傳送指令 1.mov 格式 mov destination,source 功能 將s ource中的資料傳送...