Makro gazu altmacro ze znakiem procentu w domyślnym parametrze kończy się niepowodzeniem z „% operatora potrzebuje absolutnego wyrażenia”
Chcę utworzyć makro w następujący sposób:
.altmacro
.macro assert_eq a, b=%eax
LOCAL ok
#...
.endm
Do użycia jako:
assert_eq $1
assert_eq $1, %eax
chcę.altmacro
dlaLOCAL
(Widzę inną możliwość użycia\@
, ale ja chcęLOCAL
).
Ale kiedy próbuję to skompilować, otrzymuję:
Error: % operator needs absolute expression
Zgaduję, że ten problem jest spowodowany tym, żeb=%eax
próbuje użyć innej funkcji włączonej przez.altmacro
: Wyrażenie powoduje ciągi znaków, ponieważ bez.altmacro
Mógłbym napisać to bez problemu.
Jeśli to prawda, jak mogę uniknąć tego, aby moje makro działało? Jeśli nie, co jest nie tak z moim kodem?
Pytanie bonusowe: jak korzystać%
?
Wersja GAS: 2.23.52