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
and rbx, 0xFFse queda el byte bajo.shrbaja el byte alto antes de enmascarar.- 0xC3 menos 0xA5 = 30 sale.
Palabras clave y builtins usados aquí
globalraxrbxrcxrdisection
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.
Paso 2 de 4 en Bits y banderas; paso 16 de 31 en Fundamentos del lenguaje.