typestar

Corrimiento y máscara en Assembly

Saca campos empaquetados de un valor.

; Shift and mask pulls fields out of packed values.
        global _start

        section .text
_start:
        mov rax, 0xA5C3         ; two packed bytes

        mov rbx, rax
        and rbx, 0xFF           ; low byte: 0xC3 = 195

        mov rcx, rax
        shr rcx, 8              ; high byte down
        and rcx, 0xFF           ; 0xA5 = 165

        sub rbx, rcx            ; 195 - 165 = 30
        mov rdi, rbx
        mov rax, 60             ; exit code 30
        syscall

Cómo funciona

  1. and rbx, 0xFF se queda el byte bajo.
  2. shr baja el byte alto antes de enmascarar.
  3. 0xC3 menos 0xA5 = 30 sale.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
386
Tokens
49
Ritmo de tres estrellas
55 tpm

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

Escribe este fragmento

Paso 2 de 4 en Bits y banderas; paso 16 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →