3

別のオブジェクト ファイルから関数を近い相対的な呼び出しを行いたい:

; a.asm
global _func
_func:
; [..]

; b.asm
extern _func
; [..]
call _func

残念ながら、上記のコードは機能しません。_funcレジスタにロードする必要があります。

mov  eax, _func
call eax

どちらのファイルも COFF オブジェクト ファイルにコンパイルされます。関数アドレスをレジスタにロードせずに、近い相対的な呼び出しを行う方法はありますか?

4

1 に答える 1

0

a.asm の次の行:

func:

次のようにする必要があります。

_func:

非常に不自然なケースでテストしただけで、私にとってはうまくいきます。関数アドレスを eax にロードする必要はありません。記録として、これを行っても上記のシンボル エラーを回避できなかったので、おそらくそれはタイプミスであり、より広範な問題を見逃していました。

于 2012-04-06T01:05:13.320 に答える