2011-10-30 5 views
1

私はちょうどintelアセンブリを学び始めています。私はこの単純なプログラムに問題があります。このシンボルをmasmで定義できないのはなぜですか?

main PROC   ;program execution begins here 
A = 1    ;define A with 1 
B = 12o    ;define B with 12 octal 
X dword A1h   ;initialize the variable X with value A1 hex 
Y dword 11001001b ;initialize the variable Y with value 11001001 binary 

SUM dword 0  ;initializes the sum variable to 0 
ADD EAX, A   ;adds A to sum 
ADD EAX, B   ;adds B to sum 
ADD EAX, X   ;adds X to sum 
ADD EAX, Y   ;adds Y to sum 
MOV SUM, EAX  ; 
exit    ;end of program 
main ENDP 

が、私はこれそれが言う「エラーA2006 A1:未定義のシンボル」を構築しようとしたときに、誰もがそれは素晴らしいことだ私を助けることができれば 。

答えて

2

A1hは変数名のように見えるので、0A1hと書く必要があります。

+0

おかげで、文字で始まる進値を付加すると言うことは、このような簡単な質問だった場合、申し訳ありませんこれは、アセンブリを使用して、私の最初の時間です。 –

+0

@RyanStullアセンブリで作業する場合は、[MASMのマニュアルを読む](http://people.sju.edu/~ggrevera/arch/references/MASM61PROGUIDE.pdf)を参照してください。 "16進数は常に10進数(0-9)で始まらなければなりません。必要に応じて、先頭にゼロを付けて、文字で始まる記号と16進数を区別します。たとえば、MASMはABChを識別子。" –

関連する問題