cmp y saltos en Assembly
cmp fija las banderas; la familia j ramifica sobre ellas.
; cmp sets flags; the j-family reads them. This picks a maximum.
global _start
section .text
_start:
mov rax, 23
mov rbx, 61
cmp rax, rbx
jg .keep_a ; jump if rax > rbx
mov rax, rbx ; otherwise take rbx
.keep_a:
mov rdi, rax ; max(23, 61) = 61
mov rax, 60 ; exit code 61
syscall
Cómo funciona
cmp rax, rbxcalcula una resta que nunca guarda.jgtoma el salto solo cuando el primero fue mayor.- El camino de caída maneja el otro caso: un máximo.
Palabras clave y builtins usados aquí
globalraxrbxrdisection
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 327
- Tokens
- 38
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 38 segundos.
Paso 1 de 4 en Control de flujo; paso 11 de 31 en Fundamentos del lenguaje.