[英]Assembly PUSH instruction with an OFFSET tag
我在汇编中编写了一个简单的“Hello World”程序:
global _main
extern _printf
section .text
_main:
push offset message
call _printf
add esp, 4
ret
section .data
message db 'Hello, World2', 10, 0
我在Ghidra工具(免费软件IDA替代品)中打开了已编译的.EXE,当我查看生成的汇编代码列表时,有这样的东西:
push message
call _printf
add esp,0x4
我的问题是:为什么那里没有offset
关键字(就像在源代码中一样)? 它是可选的吗? 此外,当我想修补指令时,该工具不允许我输入offset
关键字......
汇编者属于两种信仰之一。
需要方括号来读/写 memory 的汇编器不需要offset
标签来引用 label 的偏移量。 这是N ASM 风格。
这些汇编器可以允许或禁止使用offset
。
不需要方括号来读/写 memory 的汇编器将需要offset
标签来引用 label 的偏移量。 这是M ASM 风格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.