typestar

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

  1. cmp rax, rbx calcula una resta que nunca guarda.
  2. jg toma el salto solo cuando el primero fue mayor.
  3. El camino de caída maneja el otro caso: un máximo.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 4 en Control de flujo; paso 11 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →