assembly - push myVar , push [myVar] 和 push OFFSET myVar 之间的区别

标签 assembly reverse-engineering masm

我是 assembly 新手,我正在使用 MASM。 我看到这些代码行,想知道这之间有什么区别

a) push myVar

b) push [myVar]

c) push OFFSET myVar

我怎么知道他们推送的是 myVar 的值还是地址 谢谢!

最好的问候, 谢谢

最佳答案

push myVar 只是将您的变量压入堆栈。

push [myVar] 正在取消引用您的 var。如果 myVar 是指针,此代码会将值压入堆栈中的地址。

我不确定最后一个,但它似乎是相反的,push OFFSET myVarmyVar 的地址压入堆栈。

关于assembly - push myVar , push [myVar] 和 push OFFSET myVar 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16604558/

相关文章:

assembly - MIPS 和 ARM 数据路径之间的区别

javascript - 选择Pinterest上的所有图像以移至另一 block 板

c++ - 混合使用 C++ 和程序集无法将多个参数从 C++ 函数传递给程序集

assembly - Intel 8080 仿真器测试仪

macos - Mach-O 64 位格式不支持 32 位绝对地址。国家安全管理协会

exe - 如何保护 Exe 文件免遭反编译

assembly - ASM:MASM,NASM,FASM?

assembly - x86 MASM 程序集 - 保存字符串的空变量

linux - 为什么反汇编代码中有一些 "meaningless"内存槽?

objective-c - 查找器方法名称