6510 Assembly Explainer

Cómo funciona el procesador del Commodore 64, instrucción a instrucción

Aprender a programar en ensamblador 6510 en el Commodore 64

El lenguaje ensamblador fue la clave para aprovechar al máximo el C64. Cada juego rápido, cada efecto de la demoscene y cada pieza SID fue escrita por programadores que se comunicaban directamente con el procesador 6510.

Esta herramienta interactiva enseña los fundamentos. Escriba una instrucción 6510 y observe cómo los registros del procesador se actualizan en tiempo real. Recorra programas de ejemplo instrucción a instrucción para ver exactamente lo que hace la CPU en cada paso.

No necesita instalación. El simulador funciona completamente en el navegador y admite las instrucciones 6510 más habituales, desde cargar valores y realizar cálculos hasta contar y transferir datos entre registros.

6510 ASSEMBLY EXPLAINER
01Simular instrucciones 6510 en tiempo real
02Ver registros y flags actualizarse en directo
03Recorrer tres programas de ejemplo paso a paso
04Referencia completa de instrucciones con explicaciones
05Lecturas y escrituras de memoria incluidas
06Funciona completamente en el navegador

Comprar en Amazon

Encuentra hardware, juegos, libros y accesorios para Commodore. Toda la gama disponible en Amazon.

Ver en Amazon

El lenguaje ensamblador y el procesador MOS 6510

El lenguaje ensamblador está un nivel por encima del código máquina. Cada instrucción corresponde directamente a una sola operación que el procesador puede realizar: cargar un valor, sumar dos números, guardar un resultado. El 6510 del C64 es un procesador de 8 bits, lo que significa que trabaja con valores de 0 a 255 a la vez.

El 6510 es una variante del MOS 6502, la misma familia de procesadores que usaban el Apple II, el BBC Micro y los ordenadores Atari de 8 bits. Commodore lo eligió porque era propietario de MOS Technology, la empresa que lo diseñó. El 6510 añadió un puerto I/O de 8 bits utilizado para el bank-switching: el mecanismo que permite al C64 alternar entre ROM y RAM en el mismo espacio de direcciones.

Aprender ensamblador 6510 ayuda a entender por qué los juegos del C64 eran tan rápidos, cómo el hardware fue llevado mucho más allá de sus límites originales y por qué la programación de 8 bits sigue siendo estudiada y practicada por entusiastas hoy en día.

El mapa de memoria del C64 explicado
Commodore 64 PAL motherboard showing the MOS 6510 CPU chip alongside the VIC-II and SID
The Commodore 64 breadbin from 1982, whose 6510 processor gave programmers a compact, powerful instruction set

Los registros del 6510: donde trabaja el procesador

Un registro es un pequeño espacio de almacenamiento integrado directamente en el procesador, mucho más rápido de acceder que cualquier dirección de memoria. El 6510 tiene tres registros de trabajo. El Acumulador (A) es el registro principal: casi todas las operaciones aritméticas y lógicas pasan por él. Los registros de índice X e Y se usan para contar, hacer bucles y direccionar.

El Stack Pointer (SP) apunta a la cima de la pila de hardware, el área de memoria que el procesador usa automáticamente al llamar a subrutinas y gestionar interrupciones. El Program Counter (PC) contiene la dirección de la siguiente instrucción que el procesador ejecutará.

El Status Register contiene un conjunto de flags de un bit. Los más importantes son Zero (Z), activado cuando el último resultado fue cero; Negative (N), activado cuando el bit más significativo del resultado está a 1; y Carry (C), utilizado en cálculos de varios bytes y como flag booleano de propósito general.

La historia del Commodore 64

Simulador de ensamblador 6510

Escriba una instrucción 6510 y pulse RUN para ejecutarla, o seleccione un programa de ejemplo y recórralo instrucción a instrucción. La pantalla de registros se actualiza después de cada paso.

REGISTROS

A

$00

X

$00

Y

$00

SP

$FF

PC

$0801

N

0

Z

1

C

0

V

0

PROBAR UNA INSTRUCCIÓN

Escribe una instrucción y pulsa RUN o Intro. Prueba: LDA #$42, INX, ADC #$0A

PROGRAMAS DE EJEMPLO

Selecciona un programa arriba y usa STEP para ejecutarlo instrucción por instrucción.

REFERENCIA DE INSTRUCCIONES

LDALDA #$nn / LDA $nn

Cargar un valor en el acumulador. El modo inmediato (LDA #$42) carga el valor directamente. El modo página cero (LDA $20) carga el byte almacenado en esa dirección de memoria.

FLAGS: N, Z

LDXLDX #$nn / LDX $nn

Cargar un valor en el registro X.

FLAGS: N, Z

LDYLDY #$nn / LDY $nn

Cargar un valor en el registro Y.

FLAGS: N, Z

STASTA $nn

Escribir el valor del acumulador en una dirección de memoria. A no cambia.

FLAGS: None

STXSTX $nn

Escribir el registro X en una dirección de memoria.

FLAGS: None

STYSTY $nn

Escribir el registro Y en una dirección de memoria.

FLAGS: None

**** FREQUENTLY ASKED QUESTIONS ****

READY.

Explorar más herramientas del C64 Lab

El 6510 Assembly Explainer es una de las muchas herramientas interactivas del C64 Lab. Dibuje sprites, componga sonidos, explore el mapa de memoria y juegue a juegos de arcade, todo en su navegador.

Abrir el C64 Lab