typestar

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

  1. add rax, '0' vuelve el 7 el ASCII 55.
  2. mov [buf], al guarda solo el byte bajo.
  3. Un dígito y un salto hacen una escritura de dos bytes.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Hablando con Linux; paso 26 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →