Столкнулся с дурацкой ситуацией, которую пока не знаю как правильно решить. Прошу помощи!

Я переделывал код Z80 в код i8080. Отсутствующие у i8080 заменял макросами. А чтобы не плодить огромную кучу похожих макросов я сделал универсальные макросы, которые принимают на вход имя регистра. Внутри макроса по имени переданного регистра я выполняю определённые действия. Но проблема в том, что я не нашёл как делать условия правильно, чтобы оно срабатывало с передаваемым именем.

Пример:

Код:
 macro instr reg1, reg2
 if reg1 == A
  ; some code
 if reg2 == H
  ; some code
 endm


 instr A, C
Ни одно из условий не выполнится. Я пробовал и кавычки и много чего ещё. Чаще всего получаю ошибку на отсутствующую метку.

В итоге после череды всевозможных проб и ошибок закостылил так:

Код:
 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
Вот так работает, но в итоге имеем лишних 7 байт на константы. Причём в конец кода их перекинуть нельзя, так как они должны находится перед первым вызовом макроса.