typestar

Cargas y almacenes en Assembly

byte, word, qword en memoria — y movzx para ensanchar limpio.

; Sizes matter at memory: byte, word, dword, qword -- and movzx.
        global _start

        section .data
flags:  db 0x0F
counts: dw 500

        section .bss
spare:  resb 8                  ; reserved, uninitialized

        section .text
_start:
        movzx rax, byte [flags] ; zero-extend the byte: 15
        movzx rbx, word [counts]
        mov qword [spare], rax  ; store, then load it back
        mov rdi, [spare]
        add rdi, rbx            ; 15 + 500 = 515 -> exit 3 (mod 256)

        mov rax, 60
        syscall

Cómo funciona

  1. .bss reserva espacio sin inicializar con resb.
  2. movzx extiende con ceros las cargas angostas.
  3. 515 mod 256 = 3: la salida de un byte trunca.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
445
Tokens
58
Ritmo de tres estrellas
55 tpm

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

Escribe este fragmento

Paso 2 de 4 en Datos; paso 8 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →