Llenguatge de màquina

De Viquipèdia
Dreceres ràpides: navegació, cerca

El Llenguatge màquina o codi màquina és un sistema d'instruccions i dades codificat en codi binari que poden entendre els microprocessadorss.

El conjunt d'instruccions d'aquest llenguatge depèn del fabricant del processador tot i que s'acostumen a basar sobre un estàndard, que depèn de la família de processador sobre el que es treballa (per exemple, x86). El llenguatge d'assemblador (o ensamblador) consisteix en un seguit de nemotècnics per aquestes combinacions binàries, i normalment està format per operadors de un, o com a màxim dos arguments i operadors condicionals. El codi màquina d'alguns processadors RISC inclou un operador condicional en cada instrucció

Els principals inconvenients d'aquest llenguatge és que no són intel·ligibles pels humans i que depenen del model de processador. És per això que s'utilitzen els llenguatges de programació, molt més senzills d'aprendre i entendre, i els compiladors, que tradueixen aquests programes al codi màquina del processador que necessitem fer servir.

Instruccions del llenguatge màquina[modifica | modifica el codi]

Les "paraules" d'un llenguatge màquina són anomenades instruccions, cada una de les quals produeix una acció elemental a la UCP, com llegir dades d'una direcció de la memòria. Les instruccions són patrons diferents de bits corresponents a diferents ordres per la màquina.

Cada model d'UCP té el seu propi llenguatge màquina, tot i que hi ha similituds considerables entre alguns d'ells. Si la UCP de A entén el llenguatge sencer de la UCP B es diu que A és compatible amb B. La UCP B pot no ser compatible amb A, ja que A pot conèixer alguns codis que B no reconeix.

Alguns llenguatges màquina assignen el mateix nombre de bits a totes les seves instruccions, mentre que en altres llenguatges la longitud de les instruccions és variable. L'organització dels patrons depèn enormement de l'especificació del lenguatge. Normalment es divideix una instrucció en camps, on un camp especifica l'operació exacta (com per exemple "add"). Altres camps poden especificar el tipus dels operands, la seva localització en la memòria, o el seu valor directament (els operands inclosos en una operació directament són anomenats immediats).

Programes[modifica | modifica el codi]

Un programa és una seqüència d'instruccions que són executades per una UCP. Mentre els processadors simples executen les instruccions una rere l'altra, els processadors superescalars són capaços d'executar diverses instruccions simultàniament..

El flux del programa pot ésser influenciat per una instrucció jump, que transfereixen l'execució del programa a una instrucció en un posició diferent del codi que la següent. Els Salts condicionals són obeïts (l'execució continua en un altre adreça)o no (l'execució continua a la següent instrucció) depenent de la condició establerta.

Llenguatges Assembladors[modifica | modifica el codi]

Els humans utilitzem codis mnemònics per a referir-nos a les instruccions de llenguatge màquina. Aquest llenguatge més llegible s'anomena llenguatge d'assemblador, i consisteix en una barreja de nombres binaris, nombres hexadecimals i paraules curtes.

FIFO: Es basa en la idea que el primer fitxer que arribi a la cua sera el primer en sortir.

Per exemple, al processador Zilog Z80, el codi màquina 00000101 fa que la UCP decrementi el registre del processador B. En llenguatge d'assemblador aquesta mateixa instrucció s'escriuria DEC B.

Vegeu també[modifica | modifica el codi]