串操作指令:采用数据串寻址方式,操作主存连续区域的数据

串操作指令的操作数:主存中连续存放的数据串(在连续的主存区域中,字节或字的序列,以字为单位的字串或以字节为单位的字节串)

串寻址方式

数据类型 寻址寄存器 段超越
源操作数 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空操作指令 不执行任何操作,占用一个字节,空耗一个指令执行周期 /

汇编语言课堂笔记——串操作指令_数据