指令的语法 |
举例 |
周期数 |
LODS [segreg:]src |
lods es:source |
2 |
LODSB [[segreg:]src] |
Lodsb |
2 |
LODSW [[segreg:]src] |
Lodsw |
2 |
LODSD [[segreg:]src] |
Lodsd |
2 |
STOS [ES:]dest |
stor es:dstring |
3 |
STOSB [[ES:]dest] |
stosb |
3 |
STOSW [[ES:]dest] |
stosw |
3 |
STOSD [[ES:]dest] |
stosd |
3 |
MOVS [es:]dest, [segreg:]src |
movs dest,es:source |
4 |
MOVSB [[es:]dest, [segreg:]src] |
movsb |
4 |
MOVSW [[es:]dest, [segreg:]src] |
movsw |
4 |
MOVSD [[es:]dest, [segreg:]src] |
movsd |
4 |
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 |
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 |
CMPS [segreg:] src, [ES:]dest |
cmps source,es:dest |
5 |
CMPSB [[segreg:[src,] ES:] dest] |
cmpsb |
5 |
CMPSW [[segreg:[src,] ES:]dest] |
cmpsw |
5 |
CMPSD [[segreg:[src,] ES:] dest] |
cmpsd |
5 |
SCAS [ES]:dest |
scas es:destin |
4 |
SCASB |
Scasb |
4 |
SCASW |
Scasw |
4 |
SCASD |
Scasd |
4 |
REP INS dest,DX |
rep ins dest,dx |
11+3n, pm=(8,25)+3n* |
REP MOVS dest,src |
rep movs dest,source |
6, 13n |
REP OUTS DX,src |
rep outs dx,source |
13+4n, pm=(10,27)+4n* |
REP LODS dest |
rep lods dest |
7, 7+3n |
REP STOS dest |
rep stos dest |
6, 9+3n |
注:当CPL≤IOPL时,执行时间是第一个时钟周期,否则是第二个时钟周期。
REPE CMPS src,dest |
repe cmps src,dest |
7, 9+4n |
REPE SCAS dest |
repe scas dest |
7, 9+4n |
REPNE CMPS src,dest |
repne cmps src,dest |
7, 8+4n |
REPNE SCAS dest |
repne scas dest |
7, 9+4n |