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
.top:es una etiqueta local bajo_start.cmpfija banderas;jlesalta mientras rcx <= 10.- La suma de Gauss 1..10 = 55 sale como código.
Palabras clave y builtins usados aquí
globalraxrcxrdisection
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.
Paso 2 de 4 en Control de flujo; paso 12 de 31 en Fundamentos del lenguaje.