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
- El bucle interno llena la fila con '#'.
- Cada fila escribe ancho + 1 bytes — hashes más salto.
- El bucle externo ensancha hasta llegar a ROWS.
Palabras clave y builtins usados aquí
byteglobalr12raxrcxrdirdxresbrsisection
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.
Paso 3 de 3 en Bis; paso 31 de 31 en Fundamentos del lenguaje.