STOS指令:将AL/AX/EAX的值存储到[EDI]指定的内存单元
STOS指令使用AL(字节 - STOSB),AX(字 - STOSW)或EAX(对于双 - STOSD的)数据复制目标字符串,在内存中通过ES:DI指向。
将EAX寄存器的值存到EDI指定的内存单元,它存多少由前面的字节宽度决定,存完以后EDI的增长方向是加还是减由标准寄存器中df (direction) 方向位决定 df=1 EDI地址-2或4个字节 df=0 EDI地址加2或4字节

使用格式
mov EAX,12345678
mov EDI,12FFC4
STOS BYTE PRT ES:[EDI]
STOS WORD PRT ES:[EDI]
STOS DWORD PRT ES:[EDI]
STOS BYTE PRT ES:[EDI] 简写为STOSB
STOS WORD PTR ES:[EDI] 简写为STOSW
STOS DWORD PTR ES:[EDI] 简写为STOSW
REP指令:按技术寄存器ECX中的值指定重复执行字符串指令
mov ecx,10
movs dword ptr es:[edi],dword ptr ds:[esi] (等价于movsd 意思是重复0x10=16次将esi内存中的值赋值给edi,每次赋值之后,每次赋值后edi地址加或减4由df的值决定)
mov ecx,0x10
rep stos dword ptr es:[edi] (等价于stosd 意思是重复0x10=16次将eax的值扔到edi指向的内存中,每次扔完edi地址加或减4由df的值决定)
这样两个指令结合起来用就有那么点意思了 文章出自 123``blog