typestar

Complemento a dos en Assembly

neg voltea el signo; los saltos con signo lo leen bien.

; Two's complement: neg flips sign, signed jumps read it right.
        global _start

        section .text
_start:
        mov rax, 25
        neg rax                 ; -25

        cmp rax, 0
        jl .below               ; signed less-than sees the sign
        mov rdi, 0
        jmp .exit
.below:
        neg rax                 ; back to 25
        lea rdi, [rax + rax]    ; 50
.exit:
        mov rax, 60             ; exit code 50
        syscall

Cómo funciona

  1. neg rax calcula 0 menos el valor.
  2. jl es el salto menor-que *con signo*.
  3. Los códigos de salida son sin signo — devuelve el 50 positivo.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
360
Tokens
46
Ritmo de tres estrellas
55 tpm

Al ritmo de tres estrellas de 55 tokens por minuto, este intento toma unos 50 segundos.

Escribe este fragmento

Paso 3 de 3 en Aritmética; paso 6 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →