mov 功能: 把源運算元送給目的運算元語法: mov 目的運算元,源運算元格式: mov r1,r2 mov r,m mov m,r movr,data xchg 功能: 交換兩個運算元的資料語法: xchg 格...
8086/8088組合語言指令集
資料傳送指令集
mov
功能: 把源運算元送給目的運算元
語法: mov 目的運算元,源運算元
格式: mov r1,r2
mov r,m
mov m,r
mov r,data
xchg
功能: 交換兩個運算元的資料
語法: xchg
格式: xchg r1,r2xchg m,r xchg r,m
push,pop
功能: 把運算元壓入或取出堆疊
語法: push 運算元pop 運算元
格式: push rpush m push data pop r pop m
pushf,popf,pusha,popa
功能: 堆疊指令群
格式: pushf popfpusha popa
lea,lds,les
功能: 取位址至暫存器
語法: lea r,mlds r,m les r,m
xlat(xlatb)
功能: 查表指令
語法: xlat xlatm
算數運算指令
add,adc
功能: 加法指令
語法: addop1,op2 adc op1,op2
格式: add r1,r2add r,m add m,r add r,data
影響標誌:c,p,a,z,s,o
sub,sbb
功能:減法指令
語法: subop1,op2 sbb op1,op2
格式: sub r1,r2sub r,m sub m,r sub r,data sub m,data
影響標誌:c,p,a,z,s,o
inc,dec
功能: 把op的值加一或減一
語法: inc op decop
格式: inc r/mdec r/m
影響標誌:p,a,z,s,o
neg
功能: 將op的符號反相(取二進位制補碼)
語法: neg op
格式: neg r/m
影響標誌:c,p,a,z,s,o
mul,imul
功能: 乘法指令
語法: mul opimul op
格式: mul r/mimul r/m
影響標誌:c,p,a,z,s,o(僅imul會影響s標誌)
div,idiv
功能:除法指令
語法: div opidiv op
格式: div r/midiv r/m
cbw,cwd
功能: 有符號數擴充套件指令
語法: cbw cwd
aaa,aas,aam,aad
功能: 非壓bcd碼運算調整指令
語法: aaa aasaam 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之間的邏輯運算
語法: andr/m,r/m/data or r/m,r/m/data xor r/m,r/m/data test r/m,r/m/d
ata not r/m
影響標誌:c,o,p,z,s(其中c與o兩個標誌會被設為0) not指令不影響任何標誌位
shr,shl,sar,sal
功能: 移位指令
語法: shrr/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
功能: 迴圈移位指令
語法: rorr/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 stccmc
標誌位: c
cld,std
功能: 設定方向標誌
語法: cld std
標誌位: d
cli,sti
功能: 設定中斷標誌
語法: cli sti
標誌位: i
cmp
功能: 比較op1與op2的值
語法: cmpr/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
標誌位:
8086/8088組合語言指令集資料傳送指令集mov 功能: 把源運算元送給目的運算元語法: mov 目的運算元,源運算元格式: mov r1,r2 mov r,m mov m,r movr,data xchg 功能: 交換兩個運算元的資料語法: xchg 格... 無
int,iret
功能: 中斷呼叫及返回指令
語法: int n iret
標誌位: 在執行int時,cpu會自動將標誌暫存器的值入棧,在執行iret時則會將堆
棧中的標誌值彈回暫存器
字串操作指令集
movsb,movsw,movsd
功能: 字串傳送指令
語法: movsbmovsw movsd
標誌位: 無
cmpsb,cmpsw,cmpsd
功能: 字串比較指令
語法: cmpsbcmpsw cmpsd
標誌位: c,p,z,s,o
scasb,scasw
功能: 字串搜尋指令
語法: scasbscasw
標誌位: c,p,z,s,o
lodsb,lodsw,stosb,stosw
功能: 字串載入或存貯指令
語法: lodsblodsw stosb stosw
標誌位: 無
rep,repe,repne
功能: 重複字首指令集
語法: rep 指令s repe 指令s repne 指令s
標誌位: 依指令s而定
8086組合語言 LEA指令
格式 lea 暫存器,間接運算元 注意第二運算元只能是間接運算元 data array byte xuyan code mov eax,offset array lea ebx,eax 1 mov ecx,0 mov al,ebx 最後ecx中的值是十進位制117,因為 u 的ascii碼是117d...
組合語言浮點數指令集
浮點數載入指令 助記符 運算元 功能 fld memory real 將儲存器中的實型壓人堆疊 fild memory integer 將儲存器的整型數值轉化為浮點數並壓人堆疊 fbld memory bcd 將儲存器的bcd碼轉化為浮點數並壓人堆疊 fld st num 將浮點型暫存器中的數值壓入...
組合語言浮點數指令集
浮點數載入指令 助記符 運算元 功能 fld memory real 將儲存器中的實型壓人堆疊 fild memory integer 將儲存器的整型數值轉化為浮點數並壓人堆疊 fbld memory bcd 將儲存器的bcd碼轉化為浮點數並壓人堆疊 fld st num 將浮點型暫存器中的數值壓入...