A macro altmacro a gás com um sinal de porcentagem em um parâmetro padrão falha com “% de expressão absoluta precisa do operador”

Eu quero criar uma macro como o seguinte:

.altmacro

.macro assert_eq a, b=%eax
    LOCAL ok
    #...
.endm

Para ser usado como:

assert_eq $1
assert_eq $1, %eax

eu quero.altmacro paraLOCAL (Eu vejo a outra possibilidade de usar\@, mas eu queroLOCAL).

Mas quando eu tento compilar isso eu recebo:

Error: % operator needs absolute expression

Eu estou supondo que este problema é criado pelo fato de queb=%eax está tentando usar outro recurso ativado por.altmacro: Resultados de expressão como strings, desde que sem.altmacro Eu poderia escrever isso sem problema.

Se isso for verdade, como faço para evitar que minha macro funcione? Se não, o que há de errado com o meu código?

Pergunta bônus: como usar%?

Versão do GAS: 2.23.52

questionAnswers(2)

yourAnswerToTheQuestion