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'