Binaire code zelf is niet direct instructies. Het is de *weergave* van instructies. Instructies worden gecodeerd als reeksen binaire cijfers (0 en 1) die de centrale verwerkingseenheid (CPU) van de computer kan begrijpen en uitvoeren. Deze reeksen komen overeen met machinecode of machine-instructies .
Zie het als volgt:
* Voor mensen leesbare instructies: Je zou een programma kunnen schrijven in een taal als Python of C++. Deze zijn begrijpelijk voor mensen.
* Assemblagetaal: Dit is een taal op laag niveau die geheugensteuntjes (korte afkortingen) gebruikt om machine-instructies weer te geven. Het is een stap dichter bij het begrip van de computer.
* Machinecode (binair): De assembleertaal wordt vervolgens vertaald (geassembleerd) in machinecode:reeksen nullen en enen. Dit is de enige taal die de CPU direct begrijpt. Aan elke instructie, zoals het toevoegen van twee cijfers of het springen naar een ander deel van het programma, is een specifieke binaire code toegewezen. Deze code wordt bepaald door de architectuur van de CPU (bijvoorbeeld x86, ARM).
Een eenvoudige optelinstructie kan er bijvoorbeeld in verschillende weergaven als volgt uitzien:
* Montage (kan bijvoorbeeld variëren afhankelijk van de architectuur): `ADD AX, BX` (Voeg de inhoud van register BX toe aan register AX)
* Machinecode (binair zal bijvoorbeeld sterk variëren, afhankelijk van de architectuur): `00000000 00001011 00000000 00000001` (Dit is een *volledig verzonnen voorbeeld* voor illustratieve doeleinden. Echte machinecode is veel complexer en architectuurspecifiek.)
De specifieke binaire code voor een instructie is sterk afhankelijk van de architectuur van de CPU en de instructieset. Verschillende CPU's hebben verschillende instructiesets, wat betekent dat ze verschillende binaire codes begrijpen. Er bestaat geen universele binaire code voor een bepaalde instructie. |