指令的语法 |
举例 |
周期数 |
MOV reg,reg |
mov bp,sp |
1 |
MOV mem,reg |
mov array[di],bx |
1 |
MOV reg,mem |
mov bx,pointer |
1 |
MOV mem,immed |
mov [bx],15 |
1 |
MOV reg,immed |
mov cx,256 |
1 |
MOV mem,accum |
mov total,ax |
1 |
MOV accum,mem |
mov al,string |
1 |
MOV segreg,reg16 |
mov ds,ax |
2, 3 |
MOV segreg,mem16 |
mov es,psp |
2, 3 |
MOV reg16,segreg |
mov ax,ds |
1 |
MOV mem16,segreg |
mov stack_save,ss |
1 |
MOV reg32,controlreg |
mov eax,cr0 |
22 |
mov eax,cr2 |
12 |
|
mov eax,cr3 |
21, 46 |
|
mov eax,cr4 |
14 |
|
MOV controlreg,reg32 |
mov cr0,eax |
4 |
MOV reg32,debugreg |
mov edx,dr0 |
DR0-DR3, DR6,DR7=11 |
DR4,DR5=12 |
||
MOV debugreg,reg32 |
mov dr0,ecx |
DR0-DR3, |
DR4,DR5=12 DR6,DR7=11 |
MOVSX reg,reg |
movsx bx,al |
3 |
MOVSX reg,mem |
movsx eax,bsign |
3 |
MOVZX reg,reg |
movzx bx,al |
3 |
MOVZX reg,mem |
movzx eax,bunsign |
3 |
XCHG reg,reg |
xchg cx,dx |
3 |
XCHG reg,mem |
xchg bx,pointer |
3 |
XCHG mem,reg |
xchg [bx],ax |
3 |
XCHG accum,reg |
xchg ax,cx |
2 |
XCHG reg,accum |
xchg cx,ax |
2 |
LDS reg,mem |
lds si,fpointer |
4 |
LES reg,mem |
les di,fpointer |
4 |
LFS reg,mem |
lfs edi,fpointer |
4 |
LGS reg,mem |
lgs bx,fpointer |
4 |
LSS reg,mem |
lss bp, fpointer |
4, pm=8 |
LEA reg,mem |
lea bx,npointer |
1 |
PUSH reg |
push dx |
1 |
PUSH mem |
push [di] |
2 |
PUSH segreg |
push es |
1 |
PUSH immed |
push 15000 |
1 |
PUSHA |
pusha |
5 |
PUSHAD |
pushad |
5 |
PUSHF |
pushf |
4, pm=3 |
PUSHFD |
pushfd |
4, pm=3 |
POP reg |
pop cx |
1 |
POP mem |
pop param |
3 |
POP segreg |
pop es |
3 |
POPA |
popa |
5 |
POPAD |
popad |
5 |
POPF |
popf |
6, pm=4 |
POPFD |
popfd |
6, pm=4 |
XLAT [[segreg:]mem] |
xlat |
4 |
XLATB [[segreg:]mem] |
xlatb es:table |
4 |
IN accum,immed |
in ax,60h |
7, pm=4,21*(注), vm=19 |
IN accum,DX |
in ax,dx |
7, pm=4,21*, vm=19 |
INS [ES:]dest, DX |
ins es:instr,dx |
9, pm=6,24*, vm=22 |
INSB |
Insb |
9, pm=6,24*, vm=22 |
INSW |
Insw |
9, pm=6,24*, vm=22 |
INSD |
Insd |
9, pm=6,24*, vm=22 |
注:当CPL≤IOPL时,执行时间是第一个时钟周期,否则是第二个时钟周期。
OUT immed8,accum |
out 60h,al |
12, pm=9,26, VM=24 |
OUT DX,accum |
out dx,ax |
12, pm=9,25 VM=24 |
OUTS DX,[segreg:]src |
outs dx,buffer |
13, pm=10,27, VM=24 |
OUTSB [DX,[segreg:]src] |
outsb |
13, pm=10,27, VM=24 |
OUTSW [DX,[segreg:]src] |
outsw |
13, pm=10,27, VM=24 |
OUTSD [DX,[segreg:]src] |
outsd |
13, pm=10,27, VM=24 |