我正在做一个赋值语句,需要声明MASM中的符号常量沿着程序中的其他函数。我写了整个程序,并且认为我做得很好,但是我一直有符号常量声明的语法错误。我应该声明符号常量A = 5120,B=260,C= 170和D=2200。在code指令下,使用mov指令,将A、B、C和D的值分别移动到EAX、EBX、ECX和EDX。但是它一直说'C'前面的逗号有语法错误,'C'是语法错误,并且我的所有其他符号常量都未定义。
我把“C”改成了“E”,它起作用了,但我觉得改变字母不是这里的问题。
.data
mystring BYTE 20 DUP('a')
val1 SDWORD 2147483647
sum DWORD 0
firstName BYTE "Akash", "Akash", "Akash", "Akash", "Akash"
firstNameSize = ($ - firstName)
A = 5120
B = 260
C = 170
D = 2200
.code
main proc
mov eax, A
mov ebx, B
mov ecx, C
mov edx, D
sub ebx, ecx
add eax, ebx
sub eax, edx
mov sum, eax
invoke ExitProcess,0
我期望输出是不会有构建错误,寄存器将包含正确的值,并将对数字进行数学运算。
1条答案
按热度按时间hgqdbh6s1#
C是MASM中的操作名,所以不能将其用作变量名。Here's列出了我能找到的所有保留术语。