11、字符串操作指令
11.1、取字符串数据指令
| 指令的语法 |
举例 |
周期数 |
| LODS [segreg:]src |
lods es:source |
2 |
| LODSB [[segreg:]src] |
Lodsb |
2 |
| LODSW [[segreg:]src] |
Lodsw |
2 |
| LODSD [[segreg:]src] |
Lodsd |
2 |
11.2、置字符串数据指令
| 指令的语法 |
举例 |
周期数 |
| STOS [ES:]dest |
stor es:dstring |
3 |
| STOSB [[ES:]dest] |
stosb |
3 |
| STOSW [[ES:]dest] |
stosw |
3 |
| STOSD [[ES:]dest] |
stosd |
3 |
11.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 |
11.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 |
11.5、输出字符串指令
| 指令的语法 |
举例 |
周期数 |
| 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 |
11.6、字符串比较指令
| 指令的语法 |
举例 |
周期数 |
| 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 |
11.7、字符串扫描指令
| 指令的语法 |
举例 |
周期数 |
| SCAS [ES]:dest |
scas es:destin |
4 |
| SCASB |
Scasb |
4 |
| SCASW |
Scasw |
4 |
| SCASD |
Scasd |
4 |
11.8、重复前缀指令
| 指令的语法 |
举例 |
周期数 |
| 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时,执行时间是第一个时钟周期,否则是第二个时钟周期。
11.9、相等重复前缀指令
| 指令的语法 |
举例 |
周期数 |
| REPE CMPS src,dest |
repe cmps src,dest |
7, 9+4n |
| REPE SCAS dest |
repe scas dest |
7, 9+4n |
11.10、不相等重复前缀指令
| 指令的语法 |
举例 |
周期数 |
| REPNE CMPS src,dest |
repne cmps src,dest |
7, 8+4n |
| REPNE SCAS dest |
repne scas dest |
7, 9+4n |