Столкнулся с дурацкой ситуацией, которую пока не знаю как правильно решить. Прошу помощи!
Я переделывал код Z80 в код i8080. Отсутствующие у i8080 заменял макросами. А чтобы не плодить огромную кучу похожих макросов я сделал универсальные макросы, которые принимают на вход имя регистра. Внутри макроса по имени переданного регистра я выполняю определённые действия. Но проблема в том, что я не нашёл как делать условия правильно, чтобы оно срабатывало с передаваемым именем.
Пример:
Ни одно из условий не выполнится. Я пробовал и кавычки и много чего ещё. Чаще всего получаю ошибку на отсутствующую метку.Код:macro instr reg1, reg2 if reg1 == A ; some code if reg2 == H ; some code endm instr A, C
В итоге после череды всевозможных проб и ошибок закостылил так:
Вот так работает, но в итоге имеем лишних 7 байт на константы. Причём в конец кода их перекинуть нельзя, так как они должны находится перед первым вызовом макроса.Код:macro instr reg1, reg2 if reg1 == A ; some code if reg2 == H ; some code endm A: db "A" B: db "B" C: db "C" D: db "D" E: db "E" H: db "H" L: db "L" instr A, C




Ответить с цитированием