簡體   English   中英

帶有 OFFSET 標簽的匯編 PUSH 指令

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM