我不知道为什么我的x86汇编程序会导致分段错误
代码:
section .data
msg: db 'Number: %i', 10, 0
section .text
global main
extern printf
extern exit
main:
mov eax, 0
mov al, 10
mov dl, 10
mul dl
push eax
call printf
add esp, 4
push 0
call exit
我该怎么做才能避免这个问题及其原因?