Error: operand type mismatch for `pop'

Всем привет, начал изучать ассемблер GAZ (GNU), и при написания банального Hello World Столкнулся с проблемой, не не пойму в чем дело

.data 
    msg:
    .string "Hello World\n"     // string
.global main 
main:
    push $msg 
    call printf 
    pop % eax 
    xor % eax, %eax 
    ret

Ошибка

 Error: operand type mismatch for `pop'

Ответы (1 шт):

Автор решения: Илья К

В 64-х битном коде нельзя пушить 32-х битные регистры.

POP RAX
→ Ссылка