0

こんにちは、Windows Vista 64 ビット OS の MASM で最初の ASM 8086 プログラムを実行しようとしています。
このプログラムを MASM エディターに入れました。

.model small
.stack
.data
message   db "Hello world, I'm learning Assembly !!!", "$"

.code

main   proc
mov   ax,seg message
mov   ds,ax

mov   ah,09
lea   dx,message
int   21h

mov   ax,4c00h
int   21h
main   endp
end main

そして、MASM エディターは、プログラムの何が問題なのかわからないという出力を私に与えてくれます。


 Assembling: D:\masm32\First.asm
D:\masm32\First.asm(9) : error A2004: symbol type conflict
D:\masm32\First.asm(19) : warning A4023: with /coff switch, leading underscore required for start address : main
_
Assembly Error

このコードのどこに問題がありますか? これは私の最初の ASM プログラムです。覚えておいてください。ありがとうございました :)

4

2 に答える 2

1

C をよく使用するプラットフォームでは、呼び出し規則と実行形式に応じて、関数名の前にアンダースコアを付ける傾向があります (したがって、"with /coff switch" 警告が表示されます)。関数名に 1 つ追加してみてください。

ところで、Vista 64 ビットは 16 ビット コードをサポートしますか? ドロップされたものの1つであると言われました... http://en.wikipedia.org/wiki/Windows_on_Windowsを参照してください。

于 2010-05-03T14:49:26.840 に答える
0

最善の策は、おそらく XP 仮想マシンをインストールすることです。その赤ちゃんを起動してから、MASM32をインストールします。 次に、16 ビット リンカーのコピーを取得します。16 ビット リンカー

その後、もう一度やり直してください。

セグメントを使用しているため、16 ビットのアセンブリが必要です。

于 2010-05-04T01:04:21.910 に答える