L’elaboratore come sistema integrato
Un elaboratore elettronico, per quanto sofisticato, non è in grado di svolgere alcuna funzione in assenza di un programma. Il sistema è composto da due componenti inscindibili che collaborano costantemente.
Il linguaggio della CPU — il codice macchina
Ogni istruzione che la CPU esegue è codificata in linguaggio macchina: una rappresentazione binaria che la CPU interpreta direttamente secondo la sua ISA (Instruction Set Architecture).
Ogni istruzione macchina è composta da tre elementi:
Esempio di istruzione in codice macchina binario:
; Istruzione binaria — carica un valore in un registro
10110000 01100001
│────────│ │────────│
opcode operando (valore da caricare)Dai linguaggi ad alto livello al binario
Scrivere direttamente in binario è praticamente impossibile per un essere umano. Per questo motivo esistono i linguaggi di programmazione — strumenti che permettono di descrivere algoritmi in forma comprensibile, delegando la traduzione in codice macchina a strumenti automatici.
I livelli di astrazione
| Livello | Esempio | Chi lo legge | Strumento di traduzione |
|---|---|---|---|
| Alto livello | int x = 5 + 3; | Programmatore | Compilatore / Interprete |
| Assembly | MOV AL, 05h | Programmatore esperto | Assembler |
| Codice macchina | 10110000 00000101 | CPU | — (eseguito direttamente) |
Esempio completo — da alto livello a binario
Consideriamo l’operazione più semplice: sommare 5 + 3. Vediamo come cambia la rappresentazione ai diversi livelli.
Livello 1 — Linguaggio ad alto livello (C)
// Il programmatore scrive
int x = 5 + 3;Livello 2 — Assembly (linguaggio intermedio)
; L'assembler traduce in istruzioni simboliche
MOV AL, 05h ; carica il valore 5 nel registro AL
ADD AL, 03h ; somma 3 ad AL → AL = 8Livello 3 — Codice macchina (binario)
; La CPU vede solo sequenze di bit
10110000 00000101 ; MOV AL, 05h
00000100 00000011 ; ADD AL, 03hMOV, ADD, AL) invece di sequenze di bit — rendendolo leggibile pur restando vicinissimo all’hardware. È per questo che studiare l’8086 in Assembly è il modo migliore per capire cosa fa davvero una CPU.L’elaboratore — concetti fondamentali
Al livello più basso, ogni elaboratore è un sistema che:
Riepilogo
- L’elaboratore è un sistema integrato: hardware (componenti fisiche) + software (istruzioni) sono inscindibili
- La CPU comprende esclusivamente codice macchina binario — nessun nome simbolico, solo bit
- Ogni istruzione macchina è composta da opcode + operandi + modalità di indirizzamento
- Il codice macchina è dipendente dall’architettura — un binario x86 non gira su ARM
- I livelli di astrazione sono: alto livello → Assembly → codice macchina
- L’Assembly è il livello intermedio tra linguaggio umano e CPU — usa nomi simbolici invece di bit
- Comprendere il binario è il prerequisito fondamentale per studiare il microprocessore 8086