[英]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.