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
dq 12, 45, 3, 8tiende cuatro quadwords.[nums + rcx * 8]escala el índice por el tamaño del elemento.- El total, 68, sale del programa.
Palabras clave y builtins usados aquí
dqglobalraxrcxrdisection
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.
Paso 1 de 4 en Memoria y strings; paso 22 de 31 en Fundamentos del lenguaje.