ข้อผิดพลาด: ขยะ `bswapl eax movl % eax' หลังจากลงทะเบียน

ฉันกำหนด MACRO ในซอร์สโค้ด GAS แต่ 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)

person Land    schedule 30.08.2019    source แหล่งที่มา


คำตอบ (1)


ใช้เครื่องหมายอัฒภาคเพื่อส่งสัญญาณให้ GAS สิ้นสุดบรรทัด:

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

อย่าลืมเครื่องหมายเปอร์เซ็นต์สำหรับการลงทะเบียน

person rkhb    schedule 03.09.2019
comment
ขอบคุณครับ มือใหม่เรื่องน้ำมันครับ - person Land; 09.09.2019