Ошибка: мусор `bswapl eax movl %eax'после регистрации

Я определяю MACRO в исходном коде ГАЗА. Но он не компилируется gcc.

Следующее - мой определенный MACRO.

#define MSGSCHEDULE0(index) \
    movl (index*4)(%rsi)    ,%eax \
    bswapl eax \
    movl %eax   ,(index*4-272)(%rdi)

Ниже приведены сообщения ассемблера:

ошибка: мусор `bswapl eax movl %eax'после регистрации

Я хочу использовать этот MACRO в моем коде следующим образом:

MSGSCHEDULE0(0)
MSGSCHEDULE0(1)
MSGSCHEDULE0(2)
//...
MSGSCHEDULE0(16)

0 ответов

Используйте точку с запятой, чтобы обозначить GAS конец строки:

#define MSGSCHEDULE0(index) \
    movl (index*4)(%rsi),%eax; \
    bswapl %eax; \
    movl %eax,(index*4-272)(%rdi)

Не забудьте про знак процента для регистров.

Другие вопросы по тегам