Lezione 1

👤 MARCO
📅 3 Gennaio 2026

Nel Cuore del MOS 6510 (Commodore 64)

L’Assembly è il punto di contatto definitivo tra il pensiero umano e la logica del silicio; è il linguaggio che parla la lingua stessa della CPU.

Ho scelto di strutturare questo percorso attorno al MOS 6510, il cuore a 8 bit del Commodore 64. La scelta non è dettata solo dalla nostalgia, ma dalla straordinaria trasparenza di questa architettura: programmare il 6502 (la base del 6510) significa operare senza filtri, accedendo direttamente ai registri e all’hardware della macchina.

In questo corso non ci sono astrazioni, interpreti o “comodi” strati software a separarci dal ferro. Impareremo a dare ordini diretti alla macchina, esplorando quella libertà assoluta che solo la comprensione profonda dell’hardware può offrire.

L’Architettura Interna del MOS 6510

Il processore 6510 coordina le sue funzioni attraverso un set di registri interni. Questi “contenitori” di dati sono essenziali per l’elaborazione, poiché la CPU può manipolare le informazioni molto più velocemente all’interno di essi rispetto a quanto farebbe accedendo alla memoria RAM esterna.

L’Accumulatore (A)

È il registro principale a 8 bit. Rappresenta il fulcro di quasi tutte le operazioni aritmetiche e logiche. Per eseguire anche una banale addizione, la CPU deve necessariamente far transitare i dati attraverso l’Accumulatore.

I Registri Indice (X e Y)

Entrambi a 8 bit, sono utilizzati principalmente per il conteggio e l’indirizzamento. Consentono alla CPU di scorrere tabelle di dati o vettori in memoria, agendo come “puntatori” che si spostano velocemente da una cella all’altra.

Program Counter (PC) (P su alcuni manuali, ma confonde col Registro di Stato)

A differenza degli altri, il PC è un registro a 16 bit. Il suo compito è vitale: punta costantemente all’indirizzo di memoria della prossima istruzione da eseguire. È la “bussola” che guida la CPU nel flusso del codice.

Stack Pointer (SP) (S su alcuni manuali ma può creare confusione)

Questo registro a 8 bit gestisce lo “Stack” (la Pila), un’area di memoria temporanea. Quando la CPU deve saltare a una subroutine (un sottoprogramma), lo Stack Pointer permette di salvare l’indirizzo corrente per poter “tornare indietro” esattamente da dove si era interrotta una volta terminata la routine.

Registro di Stato (P)

Il registro P (Processor Status) contiene i Flag: indicatori binari che descrivono l’esito dell’ultima operazione effettuata.

  • Il flag Zero (Z) segnala se il risultato è nullo.
  • Il flag Overflow (V) indica se un calcolo ha superato la capacità del registro.

Questi segnali sono indispensabili per permettere alla CPU di prendere decisioni (salti condizionati) durante l’esecuzione del software.