Я хочу создать макрос следующим образом:
.altmacro
.macro assert_eq a, b=%eax
LOCAL ok
#...
.endm
Используется как:
assert_eq $1
assert_eq $1, %eax
Я хочу .altmacro
для LOCAL
(я вижу другую возможность использования \@
, но хочу LOCAL
).
Но когда я пытаюсь скомпилировать это, я получаю:
Error: % operator needs absolute expression
Я предполагаю, что эта проблема возникает из-за того, что b=%eax
пытается использовать другую функцию, включенную .altmacro
: Результаты выражения как строки,
так как без .altmacro
я мог бы написать это без проблем.
Если это так, как мне избежать того, что для работы моего макроса? Если нет, что не так с моим кодом?
Бонусный вопрос: как использовать %
?
Версия GAS: 2.23.52