print int ascii no assembly 64 bits em & t float number error

Eu escrevi um programa solo apenas para descobrir como fazer isso, antes adicionei 48 ao número a ser impresso, mas agora, quando obtenho números maiores que 9, não é mais suficiente.

Portanto, o programa a seguir deve colocar 23 em my temp, compara 23 a 10 se for menor que 10. Se não for possível imprimir, guarde a temp em rax, coloque 10 em r11 e divida 23 por 10. Coloque o resultado de rax em temp e verifique novamente. Ainda preciso adicionar uma maneira de recuperar os números anteriores, mas primeiro a primeira coisa. Entendi mal o que acontece, o resultado é um erro de número de flutuação

#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

questionAnswers(1)

yourAnswerToTheQuestion