typestar

Direccionamiento escalado en Assembly

base + índice * tamaño alcanza las casillas en un operando.

; Scaled addressing: base + index * size reaches array slots.
        global _start

        section .data
nums:   dq 12, 45, 3, 8
COUNT:  equ 4

        section .text
_start:
        xor rax, rax            ; total
        xor rcx, rcx            ; index
.loop:
        add rax, [nums + rcx * 8]
        inc rcx
        cmp rcx, COUNT
        jl .loop

        mov rdi, rax            ; 68
        mov rax, 60             ; exit code 68
        syscall

Cómo funciona

  1. dq 12, 45, 3, 8 tiende cuatro quadwords.
  2. [nums + rcx * 8] escala el índice por el tamaño del elemento.
  3. El total, 68, sale del programa.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
357
Tokens
60
Ritmo de tres estrellas
55 tpm

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

Escribe este fragmento

Paso 1 de 4 en Memoria y strings; paso 22 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →