print int como ascii en el ensamblado 64 bit at & t float number error

He escrito un programa en solitario solo para descubrir cómo hacer esto, antes agregué 48 al número para imprimir, pero ahora cuando obtengo números mayores que 9 ya no es suficiente.

Entonces, el siguiente programa debe poner 23 en mi temp, compara 23 a 10 si es menor que 10 que puedo imprimir, de lo contrario, guarde la temperatura en rax, ponga 10 en r11 y divida 23 entre 10. Ponga el resultado de rax en temp y revisar otra vez. Todavía necesito agregar una forma de recuperar los números anteriores, pero primero lo primero. ¿He entendido mal lo que sucede, el resultado que obtengo es un error de número flotante

#include <stdio.h>          #Inkludera standard I/O

.data                   #Specifiera data
temp:           .quad   0
temp2:          .quad   0

.text   

  .global main
main:
movq    $23, temp
jmp check

check:
cmpq    $10, $temp
jl  under10
movq    $temp, %rax
movq    $10, %r11
divq    %r11
movq    %rax,temp
jmp check

under10:
addq    $48, temp
movq    $temp,%rdi
call    puts

Respuestas a la pregunta(1)

Su respuesta a la pregunta