2012-08-29 41 views
1

這是一個非常愚蠢的問題,但是如何在ASM中調用內存地址?我正在使用代碼調用dword 557054(557054是代碼位於...),但我認爲它調用557054 +程序被加載到內存中。我需要爲我的可執行文件加載...程序集調用內存地址

+0

具體是什麼architecutre

簡單的C函數調用? x86,SPARC,PPC等...? –

+0

x86使用nasm彙編器 – user1454902

回答

3

有兩種方法可以做到這一點,你可以使用CALL或者你可以使用JMP,二是更靈活,但是需要你,如果你想要一些做更多的工作與C風格的代碼兼容使用CALL

push eax ; push args to stack 
push ebx 
call my_func ; my_func can be a c exported function or defined as a macro or asm function 
+0

感謝大聲笑它變成我的代碼不工作,因爲鏈接器搞亂函數指針地址。 – user1454902

+0

這種情況在某些事情沒有出現(使用C代碼)或者有時候沒有正確聲明全局時會發生。 –