ELEMANIA
Microprocessore - Assembly
Linguaggio macchina e linguaggio assembly

L'insieme di tutte le istruzioni (cioè di tutti i codici operativi) che un µP può eseguire prende il nome di instruction set (set di istruzioni) del µP. Il set di istruzioni viene a costituire una sorta di linguaggio molto primitivo, detto linguaggio macchina del µP. In generale µP diversi presentano linguaggi macchina diversi e i relativi codici non sono compatibili fra loro.

Poiché i codici binari sono difficili da memorizzare, solitamente vengono trascritti per mezzo di una particolare notazione mnemonica detta linguaggio assembly. Per esempio nel linguaggio macchina del microprocessore Z80 il codice operativo

(05)16 = (00000101)2

corrisponde a un'istruzione che decrementa il contenuto del registro B. Tale istruzione in linguaggio assembly viene scritta come

DEC B

Il linguaggio assembly è specifico di un certo µP (o di una famiglia di µP). Ad esempio, sono linguaggi assembly ben diversi quelli per i processori Z80, Intel x86, Motorola 68000, Dec Alpha etc. Questo significa che conoscere un certo linguaggio assembly significa saper scrivere programmi solo per un determinato µP o famiglia di µP. Passare ad altri µP però è relativamente facile, perché molti meccanismi sono analoghi o del tutto identici, quindi spesso il passaggio si limita all'apprendimento di nuovi codici mnemonici, nuove modalità di indirizzamento ed altre varie peculiarità del nuovo processore.

Solo per fare un esempio, nel linguaggio assembly del µP Intel 8086 è possibile eseguire la seguente istruzione:

            MOV AX, 1234h

che carica nel registro interno AX a 16 bit il valore esadecimale 1234h. Un altro µP di cui ci occuperemo più avanti, lo Z80, usa LD invece che MOV come identificativo assembly delle istruzioni di trasferimento. Inoltre i registri dati interni dello Z80 sono tutti a 8 bit, per cui non esiste un unico registro a 16 bit come AX. A tale scopo è possibile usare una coppia di registri a 8 bit, come per esempio H e L (a formare un unico registro HL). Una possibile istruzione simile alla precedente in assembly Z80 potrebbe dunque essere:

            LD HL, 1234h

Inoltre in assembly c'è una corrispondenza biunivoca fra le istruzioni in assembly e istruzioni in linguaggio macchina (cioè ogni istruzione in assembly corrisponde a una e una sola istruzione nel linguaggio macchina del µP). In questo l'assembly si differenzia dai linguaggi  cosiddetti ad alto livello (es. C, Pascal etc), nei quali le singole istruzioni generalmente sono codificate da più istruzioni in linguaggio macchina.

Tipologie di istruzioni

In generale è possibile raggruppare le istruzioni eseguibili da un µP in tre categorie:

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it