
Сообщение от
CityAceE
Ни одно из условий не выполнится. Я пробовал и кавычки и много чего ещё. Чаще всего получаю ошибку на отсутствующую метку.
Не знаю, как вы кавычки пробовали. Вот я попробовал:
Код:
macro instr reg1, reg2
if reg1 == "A"
DISPLAY "A"
; some code
if reg2 == "H"
DISPLAY "H"
; some code
endm
instr "A", "C"
Все нормально выполняется. Первое условие выполнилось, второе - нет, все корректно. Хотя я у этого кросс-ассемблера заметил какую-то лажу в приоритетах операций. Иногда довольно странные скобки приходится ставить.
Код:
SjASMPlus Z80 Cross-Assembler v1.21.0 (https://github.com/z00m128/sjasmplus)
Pass 1 complete (0 errors)
Pass 2 complete (0 errors)
> A
macro.asm(11): error: [IF] No ENDIF
macro.asm(15): ^ emitted from here
macro.asm(11): error: [IF] No ENDIF
macro.asm(15): ^ emitted from here
Pass 3 complete
Errors: 2, warnings: 0, compiled: 23 lines, work time: 0.000 seconds
Ну и да, у вас второй иф вложен в первый, ENDIFов нет.
Или вы хотели в instr именно без кавычек писать имена регистров?