串操作指令:采用数据串寻址方式,操作主存连续区域的数据
串操作指令的操作数:主存中连续存放的数据串(在连续的主存区域中,字节或字的序列,以字为单位的字串或以字节为单位的字节串)
串寻址方式
数据类型 | 寻址寄存器 | 段超越 |
---|---|---|
源操作数 | SI ,DS:[SI] | 允许 |
目的操作数 | DI,ES:[DI] | 不允许 |
每执行一次串操作指令,SI、DI自动修改(字节串±1,字串±2)。
串操作指令
DF影响串操作方向。DF=0,从低地址向高地址;DF=1,从高地址向低地址。
指令名 | 功能 | SI,DI变化 |
---|---|---|
串传送MOVSB | 与mov类似,将字节操作数从主存的源地址传送到目的地址 | SI,DI±1 |
串传送MOVSW | 处理字操作数 | SIDI±2 |
字节串存储STOSB | 把AL数据传送到目的地址 | DI±1 |
字串存储STOSW | 把AX数据传送到目的地址 | DI±2 |
串读取LODSB | 把指定主存单元的数据传送给AL | SI±1 |
串读取LODSW | 把指定主存单元的数据传送给AX | SI±2 |
字节串比较CMPSB | 将主存中的源操作数减去目的操作数,设置标志,进而比较两操作数关系 | SI±1 DI±1 |
字串比较CMPSW | 同上 | SI±2,DI±2 |
串扫描SCASB | 将AL减去目的操作数,比较AL与操作数关系 | DI±1 |
串扫描SCASW | 将AX减去目的操作数,比较AX与操作数关系 | DI±2 |
REP前缀 | 配合不影响标志的MOVS,STOS,LODS使用,每执行一次,CX减一,当CX等于0时结束 | / |
REPZ/REPNZ前缀 | 配合影响标志的CMPS和SCAS指令。每执行一次,CX减一,当CX或ZF等于0时结束 | / |
NOP空操作指令 | 不执行任何操作,占用一个字节,空耗一个指令执行周期 | / |