2011-10-30 39 views
1

我剛剛開始學習英特爾彙編,並且遇到了這個簡單程序的麻煩。爲什麼我不能在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

你必須寫0A1h,因爲A1h看起來像一個變量名。

+0

感謝那些做的,對不起,如果這是這樣一個簡單的問題,這是用匯編我的第一次。 –

+0

@RyanStull如果您打算進行裝配,您可能需要[閱讀MASM手冊](http://people.sju.edu/~ggrevera/arch/references/MASM61PROGUIDE.pdf)。對於整數常量:「十六進制數字必須始終以十進制數字(0-9)開頭,如果需要,可以添加前導零來區分以字母開頭的符號和十六進制數字,例如,MASM將ABCh解釋爲標識符「。 –

相關問題