我注意到在操作码中使用了汇编段。
Example:
MOV DWORD PTR SS:[EBP-30],30
我认为“PTR SS:”用于指定EBP-30来自堆栈? (SS:堆栈段)
我是对的还是完全错的? :) 而且,你能告诉我上面的例子和
MOV DWORD PTR[EBP-30],30
那么操作码中使用的 DS(数据段)又如何呢?
MOV DWORD PTR SS:[EBP-30],30
这里有两个单独的修饰符,DWORD PTR
and SS:
.
第一个告诉我们要在指向的地址存储一个字。当汇编器无法从指令的操作数中区分出这一点时,就需要这样做。这里30
也可以是一个字节来存储。
The SS:
是一个段前缀,表示我们要使用相对于堆栈段的地址。在这种情况下,并不是严格需要的,因为这是使用时的默认设置ESP
or EBP
寄存器。因此,该指令的第二个版本与第一个版本相同。
你用过吗EBX
代替EBP
会有区别的!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)