8086組合語言指令集

2021-07-02 20:03:49 字數 3962 閱讀 7623

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 將浮點型暫存器中的數值壓入...