E’ la traduzione del linguaggio assembly, in sequenze di 1 e 0, per i circuiti del calcolatore.
Il linguaggio macchina per un processore con architettura ARMv7 utilizza istruzioni a 32 bit.
Regolarità garantisce semplicità ⇒ destinare una parola di memoria a ciascuna istruzione. Anche nel caso in cui l’istruzione non necessiti di una parola da 32 bit, per essere codificata.
Questo porta ARM ad avere 3 formati di istruzione (elaborazione dati, accesso memoria e salti) La regolarità tra le istruzioni, permette di semplificare i circuiti di decodifica.
Elaborazione Dati (3 operandi): 1° op (sorgente) → registro base 2° op (sorgente) → registro / immediato 3° op (destinazione) → registro
L’istruzione è composta da 6 campi:
cond (condition)
⇒ codifica l’eventuale esecuzione condizionata, a seconda del flag di condizione ($cond = 1110_2$ → istruzioni da seguire comunque)op (Operation CODE)
⇒ ID istruzione $op=00_2$funct (function)
⇒ ha 3 sotto-campi
I bit
→ vale 1 quando Src2 è immediatocmd
→ indica l’operazione da svolgere (Tabella appendice B)S bit
→ vale 1 quando l’istruzione imposta le flag di condizione (es. SUBS)Rn
1° op ⇒ Registro