Un ISA especifica el comportament del codi màquina que s'executa a les implementacions d'aquest ISA d'una manera que no depèn de les característiques d'aquesta implementació, proporcionant compatibilitat binària entre implementacions. Això permet implementar múltiples implementacions d'una ISA que difereixen en característiques com ara el rendiment, la mida física i el cost monetari (entre altres coses), però que són capaços d'executar el mateix codi de màquina, de manera que una màquina de baix rendiment i menor cost pot ser substituït per una màquina de major cost i rendiment sense haver de substituir el programari. També permet l'evolució de les microarquitectures de les implementacions d'aquest ISA, de manera que una implementació més nova i de major rendiment d'una ISA pugui executar programari que s'executi amb generacions anteriors d'implementacions.
Si un sistema operatiu manté una interfície binària d'aplicació (ABI) estàndard i compatible per a un ISA concret, el codi màquina s'executarà en futures implementacions d'aquest ISA i sistema operatiu. Tanmateix, si un ISA admet l'execució de diversos sistemes operatius, no garanteix que el codi de màquina d'un sistema operatiu s'executi en un altre sistema operatiu, tret que el primer sistema operatiu admeti l'execució de codi de màquina creat per a l'altre sistema operatiu.
Un ISA es pot ampliar afegint instruccions o altres capacitats, o afegint suport per a adreces i valors de dades més grans; una implementació de l'ISA estès encara podrà executar codi màquina per a versions de l'ISA sense aquestes extensions. El codi màquina que utilitza aquestes extensions només s'executarà a les implementacions que admeten aquestes extensions.
Classificació de les ISA
Una ISA es pot classificar de diverses maneres diferents. Una classificació comuna és per complexitat arquitectònica. Un ordinador de conjunt d'instruccions complexes (CISC) té moltes instruccions especialitzades, algunes de les quals només s'utilitzen poques vegades en programes pràctics. Un ordinador de conjunt d'instruccions reduïdes (RISC) simplifica el processador implementant de manera eficient només les instruccions que s'utilitzen freqüentment als programes, mentre que les operacions menys comunes s'implementen com a subrutines, amb la compensació del temps d'execució del processador addicional resultant per un ús poc freqüent.[3]
El llenguatge màquina es construeix a partir de declaracions o instruccions discretes. A l'arquitectura de processament, una instrucció determinada pot especificar:
opcode (la instrucció que s'ha de realitzar) per exemple, afegir, copiar, provar
Les operacions més complexes es construeixen combinant aquestes instruccions simples, que s'executen de manera seqüencial, o segons ho indiquin les instruccions de flux de control.
Tipus d'instruccions
Alguns exemples d'operacions comunes a molts conjunts d'instruccions inclouen:
Manipulació de dades i operacions de memòria
Operacions aritmètiques i lògiques
Operacions de control de flux
Instruccions del coprocessador
Instruccions complexes
Codificació d'instruccions
A les arquitectures tradicionals, una instrucció inclou un codi d'operació que especifica l'operació a realitzar, com ara afegir contingut de memòria al registre, i zero o més especificadors d'operands, que poden especificar registres, ubicacions de memòria o dades literals. Els especificadors d'operands poden tenir modes d'adreçament que determinen el seu significat o poden estar en camps fixos. En les arquitectures de paraules d'instrucció molt llargues (VLIW), que inclouen moltes arquitectures de microcodi, s'especifiquen múltiples operands i operands simultanis en una única instrucció.
↑Crystal Chen. «RISC Architecture: RISC vs. CISC» (en anglès). cs.stanford.edu, 16-12-2006. Arxivat de l'original el de febrer 21, 2015. [Consulta: 21 febrer 2015].
↑Schlansker, Michael S.; Rau, B. Ramakrishna "EPIC: Explicitly Parallel Instruction Computing", 33, 2, 2-2000. DOI: 10.1109/2.820037.