glibc scanf Fallos de segmentación cuando se llama desde una función que no alinea RSP

Al compilar el siguiente código:

global main
extern printf, scanf

section .data
   msg: db "Enter a number: ",10,0
   format:db "%d",0

section .bss
   number resb 4

section .text
main:
   mov rdi, msg
   mov al, 0
   call printf

   mov rsi, number
   mov rdi, format
   mov al, 0
   call scanf

   mov rdi,format
   mov rsi,[number]
   inc rsi
   mov rax,0
   call printf 

   ret

utilizando

nasm -f elf64 example.asm -o example.o
gcc -no-pie -m64 example.o -o example

y luego ejecuta

./example

corre, imprime:Introduzca un número: pero luego se bloquea e imprime: Falla de segmentación (núcleo volcado)

Así que printf funciona bien pero scanf no. ¿Qué estoy haciendo mal con scanf entonces?

Respuestas a la pregunta(1)

Su respuesta a la pregunta