STOS指令

STOS指令:将Al/AX/EAX的值存储到[EDI]指定的内存单元

STOS BYTE PTR ES:[EDI]     简写为STOSB

STOS WORD PTR ES:[EDI]     简写为STOSW

STOS DWORD PTR ES:[EDI]    简写为STOSD

操作AL/AX/EAX中的哪一个寄存器,看指令操作的B(1字节)、W(2字节)、D(4字节)中的哪一个。STOS指令同样受DF标志位的影响,当DF=1时,EDI的值会自减,当DF=0时,EDI的值会自增。
用到EDI时,统一使用ES段寄存器。

——————————————————————-

例1:

  MOV EAX,12345678

  MOV EDI,18FF8C

  STOS DWORD PTR ES:[EDI]

  STOS WORD PTR ES:[EDI]

  STOS BYTE PTR ES:[EDI]

执行后如下图:

EDI的值根据DF标志位自减4字节,STOSD 指令EAX中的值 存储到了ES:[EDI]中。