Ambiente di simulazione EMU8086

✓ Conoscere l’ambiente EMU8086 e le sue funzionalità di simulazione e debug
✓ Distinguere i modelli di memoria .COM e .EXE e scegliere quello appropriato
✓ Strutturare un programma Assembly con direttive standard (4 segmenti) o semplificate
✓ Dichiarare variabili e costanti nel Data Segment usando DB, DW, DD, EQU
✓ Implementare le tre strutture fondamentali (sequenza, selezione, ciclo) in Assembly 8086

L’ISA (Istruction Set Architecture) dell’8086

✓ Conoscere la classificazione dell’ISA 8086 e le principali categorie di istruzioni
✓ Usare correttamente le istruzioni aritmetiche MOV, ADD, SUB, MUL, DIV e comprendere il complemento a 2
✓ Comprendere le istruzioni logiche, di shift/rotazione e la loro applicazione a maschere di bit
✓ Implementare strutture di controllo (if/else, cicli) usando CMP, salti condizionati e LOOP
✓ Capire il meccanismo degli interrupt e come la CPU gestisce l’I/O tramite INT

Assembly 8086 metodi di indirizzamento

✓ Comprendere la struttura di un’istruzione Assembly x86: label, opcode, operandi
✓ Distinguere i tre tipi fondamentali di indirizzamento: immediato, diretto e indiretto
✓ Analizzare le varianti dell’indirizzamento indiretto: tramite registro, con displacement, con base e indice
✓ Calcolare l’indirizzo effettivo con la formula: base address + index + displacement
✓ Scegliere il metodo di indirizzamento appropriato in base al contesto di programmazione

Organizzazione della memoria e pinout

✓ Comprendere il meccanismo di segmentazione della memoria dell’8086
✓ Calcolare l’indirizzo fisico a partire da un indirizzo logico base:offset
✓ Distinguere i quattro tipi di segmento e il loro ruolo
✓ Identificare i pin principali della CPU 8086 e la loro funzione

Introduzione al microprocessore 8086

✓ Descrivere l’organizzazione interna di una CPU
✓ Comprendere la suddivisione funzionale del microprocessore 8086
✓ Classificare e utilizzare correttamente i registri
✓ Collegare struttura hardware ed esecuzione delle istruzioni Assembly

Algoritmi, Programmi e Classificazione dei Linguaggi

✓ Distinguere algoritmo e programma
✓ Classificare i linguaggi di programmazione per livello di astrazione
✓ Comprendere le differenze tra linguaggi di alto e basso livello
✓ Collegare il concetto di linguaggio all’architettura hardware

Compilazione, Linking e Traduzione

✓ Descrivere le fasi di traduzione di un programma
✓ Distinguere compilatore, assemblatore e linker
✓ Comprendere la differenza tra linguaggi compilati e interpretati
✓ Spiegare il concetto di file oggetto ed eseguibile

Hardware, Software e Codice Macchina

✓ Comprendere la differenza tra hardware e software
✓ Spiegare il ruolo del codice macchina nell’esecuzione dei programmi
✓ Descrivere il rapporto tra linguaggi di programmazione e CPU
✓ Interpretare il concetto di istruzione binaria

Le componenti di un PC e la fase di avvio

✓Comprendere la struttura fisica e logica di un Personal Computer nelle sue configurazioni principali
✓Conoscere le componenti fondamentali: case, PSU, motherboard, CPU, chipset, RAM, storage e GPU
✓Capire il ruolo della scheda madre e del chipset (North Bridge / South Bridge / PCH)
✓Distinguere interfacce seriali e parallele e i principali standard di connessione
✓Analizzare in dettaglio il processo di bootstrap — dal Power-On al sistema operativo

Le Unità di I/O e le periferiche

✓ Comprendere il ruolo dell’unità di I/O come ponte tra sistema di elaborazione e ambiente esterno
✓ Distinguere tra periferiche di input, output e memorizzazione
✓ Spiegare il funzionamento delle interfacce di I/O: registri, buffer e indirizzamento
✓ Conoscere le tre modalità di comunicazione I/O: polling, interrupt e DMA
✓ Differenziare tra I/O memory-mapped e I/O isolato, comprendendo i vantaggi di ciascun approccio