我正在做一个分配,需要在MASM中声明符号常量以及程序中的某些其他函数。我编写了整个程序,并认为一切都做得很好,但是对于符号常量声明,我仍然遇到语法错误。我应该声明符号常量A = 5120,B = 260,C = 170和D = 2200。在代码指令下,使用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
我希望输出的结果是不会出现构建错误,寄存器将包含正确的值,并对数字进行数学运算。
答案 0 :(得分:2)
C是MASM的名称,所以您不能将其用作变量名称。 Here's我可以找到的所有保留术语的列表。
答案 1 :(得分:0)
我认为undefinied symbols
问题是:
A = 5120
B = 260
C = 170
D = 2200
您应该首先定义此符号