2016-07-06 4 views
0

asm言語サポートが "C"言語のようにリンクされた機能をサポートしているかどうかを確認しようとしていました。例えば。私は「m.asm」を持っている:MASMは複数のソースファイルを組み立て、それらを一緒にリンクしますか?

assume cs:code 
code segment 
start: 
    mov ax,20h 
    call s 
    mov ah,4ch 
    int 21h 
code ends 
end start 

がいるでは「S」は、ソースコードには存在しないのシンボルである、そして私は、シンボル(実際にはラベル)を定義するn.asmファイルを持っています

code segment 
s: 
    mov bx,4h 
    div bx 
code ends 

実際、m.asmはコンパイルに失敗し、「s」は定義されていないシンボルです。この問題を解決して、私の要求を満たすにはどうすればいいですか?

+0

http://www.oopweb.com/Assembly/Documents/ArtOfAssembly/Volume/Chapter_8/CH08-10.html#HEADING10-34 –

答えて

4

あなたはpublicディレクティブを使用してn.asmに(例えばcallを経由して)それにアクセスすることを希望する他のモジュールとして目に見える機能sを宣言する必要があり、あなたがm.asmexternディレクティブを使用して外部参照としてsを宣言する必要があります。

少数の宣言では問題ありませんが、モジュールのサイズが大きくなった場合は、includeヘッダーファイルを使用して管理することができます。

関連する問題