linguaggio macchina binario
Tipo di linguaggio in cui sono espresse le istruzioni che possono essere decodificate ed eseguite dall’unità di controllo di un calcolatore. Tutte le istruzioni sono espresse in formato binario, tipicamente suddiviso in diversi campi: un codice operativo e uno o più campi indirizzo. Il codice operativo è rappresentato da un codice intero senza segno assegnato a ciascuna istruzione macchina riconosciuta dall’hardware (per es., 0 corrisponde all’istruzione ADD, 1 all’istruzione COMPARE, e così via). Per un campo codice operativo che contiene k bit, si possono avere al massimo 2k codici operativi. I campi indirizzo contengono gli indirizzi dei valori su cui agisce l’operazione. Se il calcolatore dispone di un massimo di 2N celle di memoria, ogni campo indirizzo deve essere di N bit per permettere l’indirizzamento della cella. Il numero di campi indirizzo in un’istruzione varia da 0 a 3, a seconda dell’operazione e del numero di operandi richiesti. L’operazione di somma del contenuto della cella X con quello della cella Y richiede per es., almeno due indirizzi. Il terzo indirizzo potrebbe servire per memorizzare il risultato in una terza cella Z. L’istruzione di semplice visualizzazione del contenuto di una cella per verificarne il contenuto ha bisogno invece di un solo campo indirizzo (la sua locazione di memoria). L’istruzione ‘ADD X, Y’, per es. somma il contenuto di X e Y e memorizza il risultato in Y. In linguaggio macchina potrebbe apparire in memoria come 00001001 (codice operativo di ADD) 0000000001110011 (indirizzo di X) 0000000001110100 (indirizzo di Y). Tali 40 bit (00001001000000000111 00110000000001110100) rappresentano un’istruzione ben definita per l’unità di controllo che è in grado di decodificarla ed eseguirla. L’insieme delle operazioni eseguibili da un processore è detto instruction set. Stabilire quali istruzioni includere o meno in un nuovo processore è una scelta del progettista hardware. Ogni processore risulta pertanto progettato su un proprio instruction set. Di conseguenza, i programmi validi per un processore sono tipicamente incompatibili per altri. Generalmente, le istruzioni di un linguaggio macchina sono di quattro tipi: aritmetiche, di trasferimento, di controllo e di diramazione. L’instruction set viene realizzato seguendo il criterio della semplicità e della rapidità di esecuzione delle istruzioni. Le macchine che impiegano un set di istruzioni quanto più ridotto possibile sono dette RISC (Reduced instruction set computer), e arrivano a possedere solo poche decine di istruzioni che vengono eseguite in modo molto rapido da un insieme di poche porte logiche. A esse si contrappongono le macchine CISC (Complex instruction set computer), che posseggono centinaia di istruzioni più complesse ma più lente da eseguire.
→ Computer science; Fondamenti della matematica e teoria algoritmica dell’informazione