Assembly 概念帮助理解偏移功能和该程序输出的方式
我在理解行mov esi中的偏移函数OFFSET var1时遇到问题 它指的是什么?有没有好的资源来理解函数偏移量是如何指向内存的?这个问题在一个工作表上,我们在一个课堂上给出,我也有函数的输出。我试图更好地理解这些概念,不是为了获得任何荣誉,而是为了获得知识。就我的x86知识而言,整个程序对我来说有点混乱。我希望能有人帮助我理解偏移量指令,从中我可能需要更多的帮助来理解它是如何融入到问题的其余部分中的,但首先要做的是一小步!谢谢 编辑:我想这个程序的一个伪代码可能会有帮助或者什么?我想更好地理解这个节目的意义 指出: 将偏移量返回到表达式的相关段中Assembly 概念帮助理解偏移功能和该程序输出的方式,assembly,x86,Assembly,X86,我在理解行mov esi中的偏移函数OFFSET var1时遇到问题 它指的是什么?有没有好的资源来理解函数偏移量是如何指向内存的?这个问题在一个工作表上,我们在一个课堂上给出,我也有函数的输出。我试图更好地理解这些概念,不是为了获得任何荣誉,而是为了获得知识。就我的x86知识而言,整个程序对我来说有点混乱。我希望能有人帮助我理解偏移量指令,从中我可能需要更多的帮助来理解它是如何融入到问题的其余部分中的,但首先要做的是一小步!谢谢 编辑:我想这个程序的一个伪代码可能会有帮助或者什么?我想更好地理
您的代码看起来像是为Win32编写的,因此您可能使用的是
flat
内存模型。这意味着您只有一个4GB段,因此出于所有实际目的,您可以将偏移表达式
视为提供表达式
的地址。在您的情况下,您正在将var1
的地址移动(实际上是复制)到寄存器esi
。然后,下一行增加从var1
开始的32位双字,这也会影响var2
和var3
谢谢你,这让我看到了这一点,因为增量随后会转移到var2和var3.FWIW,因为之前的ECX值再次:
可能是4,我看到了一个无休止的循环,还是有什么我没看到的?我说“可能”,因为我不确定var3是否在偏移量0000000 3h处。但即使不是这样,我仍然看到一个无止境的循环。
OFFSET expression