typestar

triangle.asm en Assembly

Bucles anidados dibujan un triángulo de hashes fila por fila.

; Draw a hash triangle: nested loops writing one row at a time.

        global _start

ROWS:   equ 5

        section .bss
line:   resb ROWS + 1           ; widest row plus newline

        section .text
_start:
        mov r12, 1              ; current row width
.row:
        ; fill the row buffer with r12 hashes
        xor rcx, rcx
.fill:
        mov byte [line + rcx], '#'
        inc rcx
        cmp rcx, r12
        jl .fill
        mov byte [line + rcx], 10

        ; write width + 1 bytes
        lea rdx, [rcx + 1]
        mov rax, 1
        mov rdi, 1
        lea rsi, [line]
        syscall

        inc r12
        cmp r12, ROWS
        jle .row

        mov rax, 60
        xor rdi, rdi
        syscall

Cómo funciona

  1. El bucle interno llena la fila con '#'.
  2. Cada fila escribe ancho + 1 bytes — hashes más salto.
  3. El bucle externo ensancha hasta llegar a ROWS.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
36
Caracteres a escribir
535
Tokens
94
Ritmo de tres estrellas
55 tpm

Al ritmo de tres estrellas de 55 tokens por minuto, este intento toma unos 103 segundos.

Escribe este fragmento

Paso 3 de 3 en Bis; paso 31 de 31 en Fundamentos del lenguaje.

← Anterior