Microcodice: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 31:
Il codice "mov" può riferirsi a una famiglia di codici operativi numerici che fanno la stessa cosa, ma implicano diversi registri. Il codice operativo 10110000 specificamente copia un valore lungo 8 [[bit]] nel [[registro]] AL. Anche il codice operativo 10100001 è indicato come "mov", però copia di un valore a 16-bit nel registro AX.
 
La traduzione in linguaggio macchina viene eseguita da un assemblatore, invece l'operazione inversa (ove possibile; a volte per impedire la decifrazione del codice vengono usati unpacker, cifrature, o altri sistemi di protezione) da un disassembler. A differenza dei linguaggi [[linguaggi di alto livello]], di solito c'è una corrispondenza 1 a 1 tra le dichiarazioni in linguaggio macchina e istruzioni in linguaggio macchina. Tuttavia, in alcuni casi, un assemblatore può fornire pseudoistruzioni (macro) che si espandono in diverse istruzioni in linguaggio macchina per fornire funzionalità comunemente necessarie. Ad esempio, per una macchina che manca dell'opcode BGE (Branch if Greater or Equal = "salto condizionato se maggiore o uguale"), un assemblatore può fornire una pseudoistruzione apposita. La maggior parte degli assemblatori ha anche un ricco set di macro che viene utilizzato dai produttori di hardware e/o dai programmatori per generare il codice più complessi e sequenze di dati.
 
Ad ogni processore di solito corrisponde un proprio linguaggio macchina.