条件汇编伪指令为何报语法错?

来源:百度知道 编辑:UC知道 时间:2024/05/24 20:08:17
我试用条件汇编伪指令来告诉MASM对哪部分代码进行汇编,但IF伪指令那行总报语法错,咋回事?

Method EQU 1;
; ...
.Code
; ....
IF Method=1 ;汇编时,这行总报语法错!!为何?
Start: mov eax,01

ELSEIF Method=2
Start: mov eax,02
ELSE
Start: mov eax,3
ENDIF
....
END Start
原来是一个=号 汇编程序报错如下:
Assembling: C:\masm32\examples\ZhouYin07.asm
C:\masm32\examples\ZhouYin07.asm(22) : error A2008: syntax error
后来把一个=号改成==,变成 IF Method==1 汇编程序还是报错:
C:\masm32\examples\ZhouYin07.asm(22) : error A2008: syntax error : =

IF的语法如下:
IF expression
其中expression是一个表达式,不是一个比较式,即expression的值不为零,则为"真",即条件成立。所以你的程序应该这样写(用IFE,即expression的值为零时则为"真"):

Method EQU 1;
; ...
.Code
; ....
IFE Method-1
Start: mov eax,01

ELSEIFE Method-2
Start: mov eax,02
ELSE
Start: mov eax,3
ENDIF
....
END Start

汇编语言还有条件汇编吗?我没有听说啊,好像在C语言或者其他的高级语言用过,但在汇编语言当中没用过,还有啊,好像汇编指令里没有IF,ELSE这样的指令啊。

把等号改==