typestar

La forma del bucle en Assembly

Una etiqueta, una comparación, un salto de vuelta: todo bucle jamás.

; A loop is a label, a compare, and a conditional jump back.
        global _start

        section .text
_start:
        xor rax, rax            ; sum
        mov rcx, 1              ; counter
.top:
        add rax, rcx
        inc rcx
        cmp rcx, 10
        jle .top                ; while rcx <= 10

        mov rdi, rax            ; 1+2+...+10 = 55
        mov rax, 60             ; exit code 55
        syscall

Cómo funciona

  1. .top: es una etiqueta local bajo _start.
  2. cmp fija banderas; jle salta mientras rcx <= 10.
  3. La suma de Gauss 1..10 = 55 sale como código.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
332
Tokens
41
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 41 segundos.

Escribe este fragmento

Paso 2 de 4 en Control de flujo; paso 12 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →