ITEEDU

1、数据传送指令

1.1、传送指令

指令的语法 举例 周期数
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

1.2、传送-填充指令

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

1.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

1.4、取段地址和有效地址指令

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

1.5、进栈指令

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

1.6、出栈指令

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

1.7、转换指令

XLAT [[segreg:]mem] xlat 4
XLATB [[segreg:]mem] xlatb es:table 4

1.8、输入指令

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时,执行时间是第一个时钟周期,否则是第二个时钟周期。

1.9、输出指令

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