好吧,装配中出现了一个奇怪的新问题(特别是tasm)
CheckInfo MACRO arr:REQ, length:REQ, arr_type := <l>
mov bx, arr
mov cl, length
mov si, 1
IF arr_type eq <x>
inc si
ENDIF
mov a&arr_type, [bx]
ENDM
只想检查arr_type是否等于x。如果是,则添加到值为1.否则。但是当我尝试尝试它时,它会抛出一个错误
Illegal forward reference: L
Undefind symbol: L
但为什么呢?我只是想检查两个值是否等于char char或不是
答案 0 :(得分:1)
行IF arr_type eq <x>
最终会扩展为IF l req <x>
,在此上下文中l
是一个符号。如果要将它们作为字符进行比较,则需要使用字符串并将arr_type
替换为字符串:
IF "&arr_type" EQ "x"
请注意,这实际上并不是逐字符比较。 EQ运算符比较无符号整数,因此字符串将转换为整数然后进行比较。