Menu
Coddy logo textTech

Registros vs. Memoria

Parte de la sección Fundamentos del Journey de Assembly de Coddy. Lección 3 de 45.

Ahora has aprendido sobre dos lugares donde los datos pueden residir dentro de una computadora:

  • Registros: pequeñas cajas de almacenamiento dentro de la CPU
  • Memoria (RAM): una enorme cuadrícula de posiciones numeradas fuera de la CPU

Pero ¿por qué hay dos lugares? ¿Por qué la CPU no puede trabajar directamente con la memoria?

La respuesta es la velocidad. Los registros son extremadamente rápidos porque están dentro de la CPU. La memoria es más lenta porque está fuera. La CPU puede acceder a un registro en un solo ciclo, pero acceder a la memoria lleva mucho más tiempo.

Comparación lado a lado:

CaracterísticaRegistrosMemoria (RAM)
UbicaciónDentro de la CPUFuera de la CPU
VelocidadExtremadamente rápida (1 ciclo)Más lenta (muchos ciclos)
Número de ranuras de almacenamientoMuy pocas (16-32 en x86-64)Millones o miles de millones
Tamaño de cada ranura8 bytes (64 bits)1 byte
Cómo se accede a ellasPor nombre (rax, rbx, rcx...)Por dirección (1000, msg, buffer)
¿Volátiles?Sí (desaparecen al apagarse)Sí (desaparece al apagarse)

La regla más importante en ensamblador:

La CPU no puede trabajar directamente con datos en la memoria. Los datos deben cargarse primero en los registros.

Esto no es opcional. Así está diseñado el CPU. Cada suma, cada comparación y cada movimiento de datos debe pasar por un registro.

El patrón de tres pasos que usarás constantemente:

PasoQué sucedeEjemplo
1. LOADCopia los datos de la memoria a un registromov rax, [count]
2. WORKHaz algo con el registroadd rax, 5
3. STORECopia el resultado de vuelta a la memoria (si es necesario)mov [result], rax

¿Qué sucede si olvidas esta regla?

Si intentas sumar dos números que están ambos en la memoria, el ensamblador te dará un error. La CPU simplemente no puede hacerlo. Primero debes cargarlos en registros.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de Assembly