純粹來自好奇 - 爲什麼不可能將變量命名爲「c」?例如...字母「c」作爲變量名稱
.386
.model flat, stdcall
option casemap:none
include windows.inc
include kernel32.inc
include user32.inc
includelib user32.lib
includelib kernel32.lib
Main proto
.data
hOutput dd 0
hInput dd 0
bReadWritten dd 0
szText db "Program calculates the roots of the quadratic expression ax^2+bx+c",10,"Enter a",0
a dd 0
b dd 0
c dd 0
delta dd 0
szInput db 128 dup(0)
.data?
.code
start:
Invoke Main
Invoke ExitProcess,0
Main proc
invoke GetStdHandle, STD_OUTPUT_HANDLE
mov hOutput, eax
invoke GetStdHandle,STD_INPUT_HANDLE
mov hInput, eax
invoke lstrlen, addr szText
invoke WriteFile, hOutput, addr szText, eax, ADDR bReadWritten, NULL
invoke ReadFile, hInput, a, eax,addr bReadWritten, NULL
invoke ReadFile, hInput, b, eax,addr bReadWritten, NULL
invoke ReadFile, hInput, c, eax,addr bReadWritten, NULL
invoke Sleep,10000
ret
Main endp
end start
...這會導致裝配時錯誤
C:\ 3,第三方程序\ winASM \ WinAsm \項目\二次方程\ EXE.asm( 24):錯誤A2008:語法錯誤:C
C:\ 3-第三方程序\ winASM \ WinAsm \項目\二次方程\ EXE.asm(52):錯誤A2008:語法錯誤:C
當我重命名它時,所有組件都運行良好。
很有可能'c'是winasm的保留字。我從來沒有使用它,但我不知道。如果是,應該在手冊中記錄。 – twalberg