stosd 在装配中是如何工作的?

Posted

技术标签:

【中文标题】stosd 在装配中是如何工作的?【英文标题】:How stosd works in assembly? 【发布时间】:2020-07-25 16:45:30 【问题描述】:

抱歉这个问题..只是想了解当 EAX 为零时 stosd 在汇编中的工作原理

mov ecx, 41
lea edi, [variable]
xor eax, eax
rep stosd

我正在使用这些说明调试恶意软件,并且在每个 stosd 中,当在转储中跟踪 edi 时,我可以看到 Windows 目录路径。

但是当 EAX 为零且不引用任何变量时,这些目录从哪里来?

【问题讨论】:

rep stosdwmemset(edi, eax, ecx) - 它只是在您的情况下存储零。但它也会增加 EDI,使其指向缓冲区的末尾。 谢谢 ... @Peter .. 现在我明白了。 【参考方案1】:

您看到指针已经存储在edi 指向的数组中,之前每个stosd 都会用零覆盖它们。

stosd writes eax to edi and increments it by four(假设未设置DF 标志,通常是这种情况)。

那个sn-p相当于memset(variable, 0, 41*4)

【讨论】:

以上是关于stosd 在装配中是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Inventor API 和 Python 访问装配体中出现的工作平面

SpringBoot自动装配流程源码分析

spring学习总结——装配Bean学习三(xml装配bean)

solidworks画好的装配图有部分零件在工程图中不显示,怎么解决。谢谢!!

solidworks如何在装配图里面调单个零件出来?

Spring JUnit:如何在自动装配组件中模拟自动装配组件