Pointers 汇编调用内存地址

Pointers 汇编调用内存地址,pointers,assembly,call,Pointers,Assembly,Call,这可能是一个非常愚蠢的问题,但是如何在ASM中调用内存地址呢?我正在使用代码调用dword 557054(557054是WAR代码所在的位置…),但我认为如果程序加载到内存中,它正在调用557054+。我需要这个用于我的可执行加载程序…有两种方法可以做到这一点,你可以使用CALL或者你可以使用JMP,第二种方法更灵活,但是如果你想与C风格代码兼容,需要做更多的工作 使用调用的简单c函数调用 push eax ; push args to stack push ebx call my_func ;

这可能是一个非常愚蠢的问题,但是如何在ASM中调用内存地址呢?我正在使用代码调用dword 557054(557054是WAR代码所在的位置…),但我认为如果程序加载到内存中,它正在调用557054+。我需要这个用于我的可执行加载程序…

有两种方法可以做到这一点,你可以使用
CALL
或者你可以使用
JMP
,第二种方法更灵活,但是如果你想与C风格代码兼容,需要做更多的工作

使用
调用的简单c函数调用

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

具体是什么建筑?x86、SPARC、PPC等…?x86使用nasm assemblerThanks lol结果表明我的代码不起作用,因为链接器弄乱了函数指针地址。当某些东西没有外部化(使用C代码)或没有正确声明为全局时,往往会发生这种情况。