# Monitor in linguaggio macchina

Il monitor in linguaggio macchina è un programma informatico che permette all'utente di un computer di inserire, tramite un'interfaccia a riga di comando, dei comandi per poter caricare e salvare porzioni di memoria su supporti esterni, per accedere al contenuto di singole celle di memoria, per scrivere programmi in assembly o per disassemblare quelli scritti in linguaggio macchina presenti nella memoria del computer.
Ebbero una notevole diffusione sugli home computer usciti tra la fine degli anni settanta e la prima metà degli anni ottanta del XX secolo.

## Storia

Uno dei primi home computer ad integrare un monitor in ROM fu l'Apple I: il WOZ Monitor, così detto perché scritto direttamente da Steve Wozniak, permetteva di cambiare il contenuto delle celle di memoria e di lanciare un programma in linguaggio macchina. Quel monitor fu ripreso ed espanso per essere integrato nell'Apple II. Una delle funzioni più importanti aggiunte fu il disassemblatore: grazie ad esso, l'utente poteva trasformare in un più leggibile assembly il codice scritto in linguaggio macchina presente in memoria, comprese le routine del sistema stesso.
Per i modelli Commodore VIC-20 e Commodore 64 furono offerti dei monitor da sviluppatori di terze parti. Tra i più famosi per il C64 vi sono Supermon64, pubblicato nel 1983, che era unicamente un monitor, e la cartuccia The Final Cartridge III che conteneva oltre al monitor anche altre utilità. L'interesse, soprattutto per i monitor per il C64, fu così forte che Commodore provvide ad integrarne uno nei modelli Commodore 16, Commodore Plus/4 e Commodore 128, richiamabile direttamente da BASIC con il comando MONITOR. Questo monitor integrato permetteva di scrivere programmi in assembly, disassemblare il codice in memoria, caricare o salvare su supporti esterni porzioni di RAM, spostare blocchi di memoria e lanciare l'esecuzione di un programma da un determinato indirizzo.
La statunitense APX distribuì nel 1982 DDT (sigla di Dunion's Debuggind Tool), un monitor e debugger per i computer Atari a 8 bit.
Con la progressiva diffusione di linguaggi ad alto livello sempre più potenti e con l'aumentare della complessità dei computer,il linguaggio macchina e l'assembly iniziarono ad essere lentamente abbandonati. Conseguentemente, iniziò a calare anche l'interesse nei confronti dei monitor. Oggi questo genere di programmi sopravvive soprattutto nei computer hobbistici, dove la semplicità e la compattezza del linguaggio macchina permette di integrare nella memoria di questi computer delle semplici interfacce capaci di eseguire piccole funzioni base.

## Caratteristiche

Essi permettevano di poter scrivere in maniera facile programmi in linguaggio macchina ricorrendo all'assembly, un linguaggio mnemonico più facilmente ricordabile rispetto ai semplici numeri del linguaggio macchina. Altro vantaggio dell'assembly era l'utilizzo delle etichette per indicare i punti per le istruzioni di salto, grazie alle quali non si dovevano ricalcolare manualmente gli indirizzi di memoria dei salti nel caso si fosse inserita nel mezzo del codice una o più nuove istruzioni.
Alcuni monitor particolarmente avanzati permettono anche l'esecuzione dei programmi a piccoli passi, un'istruzione alla volta, alla stregua dei debugger.