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

questionAnswers(2)

yourAnswerToTheQuestion