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