Llenguatge de màquina

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca

En informàtica , el llenguatge de màquina (o codi de màquina ) és el llenguatge en què s’escriuen els programes d’ ordinador executables : es pot classificar com a llenguatge de programació , tot i que aquesta última expressió es reserva amb més freqüència per indicar els llenguatges d’alt nivell amb què s’utilitzen. escriure programes que no són directament executables, però que requereixen una traducció al llenguatge automàtic, per exemple. mitjançant un compilador .

Descripció

Icona de la lupa mgx2.svg El mateix tema en detall: sistema de números binaris .

El llenguatge automàtic es basa en un alfabet anomenat binari, ja que només inclou dos símbols, generalment indicats amb 0 i 1 : un símbol d’aquest alfabet s’anomena bit . El processador o CPU és aquell component de maquinari d'un equip que és capaç d'executar programes escrits en llenguatge de màquina. En altres paraules, el llenguatge de màquina defineix el conjunt d’instruccions fonamentals que un processador és capaç de realitzar ( conjunt d’instruccions ) en què s’han de traduir els codis de programa que s’han d’executar. En particular, els llenguatges de nivell inferior s’obtenen com una simple codificació (taula d’associació) a partir del llenguatge màquina en un crescendo d’abstracció.

Com en els llenguatges naturals , en el llenguatge automàtic els símbols de l'alfabet utilitzat (1 i 0) s'organitzen en "paraules" que al seu torn constitueixen "frases". Les frases en llenguatge automàtic s’anomenen instruccions ; cadascun d'ells ordena al processador realitzar una acció elemental relacionada amb l'estat intern de l'ordinador, com ara llegir una ubicació de memòria o calcular la suma dels valors continguts en dos registres .

Les frases generalment consisteixen en una paraula inicial anomenada codi operatiu inicial, que indica el tipus d’acció que s’ha de realitzar, seguida d’altres paraules que especifiquen els paràmetres (o dades) als quals s’ha d’aplicar l’acció (per exemple, "SUM" - "15" - "20"). Si considerem la primera paraula com un "verb" de la frase, podem dir per analogia que el llenguatge màquina només proporciona verbs en imperatiu; no en va, els llenguatges de programació que tenen aquesta característica s’anomenen llenguatges imperatius . Els processadors tradicionals només podien executar una instrucció a la vegada; actualment s’estan estenent tecnologies (com la de processadors superescalars ) que permeten executar múltiples instruccions en paral·lel . Les instruccions que poden aparèixer en un programa de llenguatge automàtic descriuen accions senzilles com ara "afegir", "dividir" o "comparar".

Compatibilitat

L'expressió "llenguatge de màquina " és, en rigor, incorrecta; de fet, cada model de processador és capaç d’entendre el seu propi llenguatge de màquina. Tanmateix, tot i variar en sintaxi específica, els llenguatges de màquina de tots els processadors es basen en un conjunt de principis i conceptes similars.

Si un processador P1 concret entén exactament el llenguatge d’un altre processador P2, es diu que P1 és compatible amb P2. Per exemple, els anomenats processadors x86 s’anomenen d’aquesta manera perquè són capaços d’entendre un llenguatge de màquina inventat per Intel i utilitzat posteriorment també en processadors AMD , VIA o Cyrix . Cal tenir en compte que els processadors compatibles diferents no han de ser compatibles també a nivell de maquinari: els processadors Intel i AMD x86 interpreten el mateix llenguatge de la màquina encara que internament siguin molt diferents.

Relació amb l'assemblea

Icona de la lupa mgx2.svg El mateix tema en detall: llenguatge assemblador .

El llenguatge màquina sovint es confon amb el llenguatge assemblador, però en realitat aquest últim és un llenguatge de programació de baix nivell que, de manera similar als llenguatges d’alt nivell com C , C ++ , C # , Pascal , Java , Python , Visual Basic , Ruby , etc., requereix un procés de traducció. A diferència d’aquest últim, el muntatge permet una traducció particularment senzilla que transforma cada instrucció de muntatge, d’una manera única, en una instrucció de llenguatge automàtic.

Els codis operatius i les dades del llenguatge de la màquina són patrons de bits (cadenes). El muntatge utilitza instruccions mnemotècniques, que faciliten el desenvolupament i la depuració de programes per al programador humà. Per exemple, al processador Z80 , el codi de la màquina 00000101b (05h) correspon a l'ordre de disminució del nombre contingut al registre B [1] , mentre que en llenguatge ensamblador s'escriu el mateix ordre DEC B [2] .

Exemples de notació

Per comoditat, els codis de la màquina també es poden transcriure en notació hexadecimal : per exemple, sempre a la Z80 la successió de codis:

 3E 41 D3

es fixa mentre que en d’altres varia d’educació en educació. L’organització de patrons també varia molt.

Com a exemple específic podem prendre l' arquitectura MIPS . Les instruccions d'aquesta arquitectura es componen de 32 bits (o 4 bytes ). Els primers 6 bits contenen el codi opcional. Les instruccions del tipus J (de jump: jump) i I (immediata) estan completament especificades pel camp op mentre que les instruccions del tipus R (registre) inclouen un camp addicional anomenat func que codifica la funció específica a realitzar. El format detallat de les instruccions és el següent:

 6 5 5 5 5 6 bits
[op | rs | rt | adreça / immediata] tipus I
[op | adreça de destinació] tipus J
[op | rs | rt | rd | shamt | funció] tipus R

rs , rt i rd indiquen els registres en què es troben els operands; shamt significa "quantitat de desplaçament" mentre que l' adreça i el contingut immediat contenen operands directament.

Per exemple, l'operació d'afegir registres 1 i 2 amb l'emmagatzematge del resultat al registre 6 es codifica com:

 [op | rs | rt | rd | shamt | funció]
    0 1 2 6 0 32 forma decimal
 000000 00001 00010 00110 00000 100000 forma binària

Carregant al registre 8 d'un valor emmagatzemat a la cel·la de memòria situada a 68 cel·les després de la que assenyala el registre 3:

 [op | rs | rt | adreça / immediata]
   35 3 8 68 forma decimal

Nota

  1. ^ ( EN ) Manual del processador Z80, Codis d'operació d'instruccions, Taula d'operacions aritmètiques / lògiques ( PDF ), a z80.info , pp. 50-51. Consultat el 31 d'octubre de 2020 ( arxivat el 14 de setembre de 2020) .
  2. ^ (EN) Manual del processador Z80, muntatge, educació DEC (PDF) a z80.info, pàg. 170-171. Consultat el 31 d'octubre de 2020 ( arxivat el 14 de setembre de 2020) .

Bibliografia

  • David Andrew Patterson i John Leroy Hennessy, The computer: abstractions and technology , in Structure and design of computers , 4th ed., Zanichelli, 2015, ISBN 978-88-08-35202-6 .
  • David Andrew Patterson i John Leroy Hennessy, Instruccions: el llenguatge dels ordinadors , a Estructura i disseny d’ordinadors , 4a ed., Zanichelli, 2015, ISBN 978-88-08-35202-6 .

Articles relacionats

Control de l'autoritat GND ( DE ) 4037827-5
Informàtica Portal de TI : accediu a les entrades de Viquipèdia relacionades amb TI