我最近偶然发现了以下汇编指令序列:
rep stos dword ptr [edi]
Run Code Online (Sandbox Code Playgroud)
Chr*_*ung 67
对于ecx
重复,每次将内容存储eax
到edi
指向,递增或递减的位置edi
(取决于方向标志)4个字节.通常,这用于a memset
型操作.
通常,只需编写该指令rep stosd
.经验丰富的装配编码人员只要看到这一点就知道上面提到的所有细节.:-)
完整性的ETA(感谢PhiS):每次迭代,ecx
递减1,当循环达到零时循环停止.因为stos
,你唯一会注意到的是ecx
最后清除的东西.但是,对于使用/ 前缀scas
的情况等,如果操作在耗尽字节/单词/ whatevers 之前停止,则可以大于零.repz
repnz
ecx
ecx
在你提出之前,scas
用于实现strchr
类型操作.:-P
归档时间: |
|
查看次数: |
35478 次 |
最近记录: |