在TSS相关的代码中,发现通常会有这样一段:
mov edi,[app_i_param]
add edi,[app_mem_pos]
mov ecx,256/4
cld
rep stosd
mov esi,[esp+4]
cmp esi,0
jz no_app_params
。。。。。。。。。。。。。。。
cld会清除方向标记,而std会设置方向标记。
方向标志用于影响字符串指令偏移指针寄存器的方向。这些指令可以与REP前缀一起使用以重复操作。
简而言之,当方向标记为0时,指令将通过在每次迭代后递增指向数据的指针(eax放入要拷贝的内容,edi是递增的,将eax中的内容放入edi指向的地址中,ecx逐步递减为0)
stosd最后一个字母是d表示每次四个字节。
标签:stosd,对于,app,edi,mov,理解,方向,标记 From: https://www.cnblogs.com/menuetos32/p/16610028.html