2016-11-02 4 views
0

私は現在アセンブリ言語の基礎を学んでいる学生です。私は、プログラムが内部プロシージャコールを未定義のシンボル(A2006)としてマークする問題にぶつかりました。一方、付属のライブラリへの呼び出しはうまく動作します。ASMでメインと並行してプロシージャを使用するにはどうすればよいですか?

オンラインでこの問題を調べたところ、インクルードファイルにputを使用するのを忘れていたため、外部呼び出しに問題が発生している人しか見ていませんでした。手順自体については、私は人々が2つの異なる方法でそれらを設定し、両方が私に未定義のエラーを与えるのを見ました。

INCLUDE whatever 
.data 
.code 
main proc 
coding 
CALL procedurefromwhatever ;this works just fine 
CALL name ;this is the part that returns the A2006 undefined error 
CALL name_proc ;this doesn't work either 
exit 
main ENDP 
end main 

name proc 
coding 
ret 
name ENDP 

name_proc: 
coding 
ret 
name ENDP 

答えて

1

end mainラインは、文書全体を閉じるので(第2 name ENDP後)下に移動し、文書が間違った場所で閉じたので、手続きは、コードセグメントに属していないはずであり、彼らは認識されません:

INCLUDE whatever 
.data 
.code 
main proc 
coding 
CALL procedurefromwhatever ;this works just fine 
CALL name ;this is the part that returns the A2006 undefined error 
CALL name_proc ;this doesn't work either 
exit 
main ENDP 
;end main     ◄■■■ WRONG PLACE. MUST BE AT THE BOTTOM. 

name proc 
coding 
ret 
name ENDP 

name_proc: 
coding 
ret 
name ENDP 

end main     ;◄■■■ RIGHT HERE!!! 
+0

これは動作します。助けてくれてありがとう。私はあなたにupvoteを与えるだろうが、私のアカウントはあまりにも新しく、私はこのサイトのスパム投票フィルターに捕まった。 – LostintheMostObscureMistakes

+0

@LostintheMostObscureMistakesの場合、緑色のチェックマークをクリックして答えを受け入れることができます(左側の大きい「0」の下のチェックマークを参照)。 –

関連する問題