1
我正在逐步完成AT & T彙編中的一個函數,並且無法弄清楚這個特定的jmp命令是如何工作的。在這種情況下,jmp指令如何在att彙編中工作
jmp *0x804a140(,%eax,4)
究竟是如何使用%eax寄存器和4跳轉指令?我從來沒有見過jmp以前用過這種方式。
我正在逐步完成AT & T彙編中的一個函數,並且無法弄清楚這個特定的jmp命令是如何工作的。在這種情況下,jmp指令如何在att彙編中工作
jmp *0x804a140(,%eax,4)
究竟是如何使用%eax寄存器和4跳轉指令?我從來沒有見過jmp以前用過這種方式。
如果您對& t語法感到困惑,請將您的工具切換至英特爾模式。
您看到的有效地址不是特定於跳轉,您可能遇到任何帶有內存操作數的指令。
在intel語法中,這看起來像:jmp [0x804a140 + 4 * eax]
。這是一個間接跳轉,從內存地址0x804a140 + 4 * eax
中獲取跳轉目標。這可能是所謂的跳轉表中的一個項目。
這對代碼很有意義。我只是不確定AT&T語法是如何讀取這些內容的,而在線搜索使得它更加令人困惑。謝謝! – cmw2379