Dígitos a texto en Assembly
Un número se vuelve imprimible sumándole '0'.
; A number becomes text by adding '0' -- one digit at a time.
global _start
section .bss
buf: resb 2
section .text
_start:
mov rax, 7 ; the digit to print
add rax, '0' ; 7 -> '7' (ASCII 55)
mov [buf], al ; store the low byte
mov byte [buf + 1], 10 ; newline
mov rax, 1
mov rdi, 1
mov rsi, buf
mov rdx, 2
syscall
mov rax, 60
xor rdi, rdi
syscall
Cómo funciona
add rax, '0'vuelve el 7 el ASCII 55.mov [buf], alguarda solo el byte bajo.- Un dígito y un salto hacen una escritura de dos bytes.
Palabras clave y builtins usados aquí
albyteglobalraxrdirdxresbrsisection
El intento, en números
- Líneas
- 22
- Caracteres a escribir
- 386
- Tokens
- 62
- Ritmo de tres estrellas
- 55 tpm
Al ritmo de tres estrellas de 55 tokens por minuto, este intento toma unos 68 segundos.
Paso 1 de 3 en Hablando con Linux; paso 26 de 31 en Fundamentos del lenguaje.