CPU en machinecode

Machinecode zijn niet de codes die je ziet, maar de onzichtbare instructies die bepalen wat er met die codes gebeurt.

Armbandje

Hier is nog geen machinecode.
Wat hier gebeurt is puur hardware: een elektrisch circuit wordt gesloten of open gelaten.
AAN = 1 en UIT = 0 zijn elektrische toestanden, geen instructies.
Dit zijn signalen, maar ze hebben nog geen afgesproken betekenis voor de CPU


Unieke Code

De codes zoals 00110001, 00101011 en 00111101 zijn géén machinecode, maar data.
Het zijn tekenrepresentaties (bijvoorbeeld ASCII) van wat je hebt ingetoetst.
Deze codes zeggen niet tegen de CPU wat hij moet doen, maar wat er is ingetypt.
Machinecode bestuurt hardware; deze codes beschrijven invoer.


Moeder

Ook hier is nog geen machinecode.
Het moederbord transporteert bitpatronen, maar weet niets van instructies.
De nullen en enen worden verplaatst, niet geïnterpreteerd.
Dit is logistiek: bits van A naar B brengen.


Ballenhokken

Registers en geheugens slaan bits op, maar opslaan is geen uitvoeren.
Zolang de CPU deze bits niet als instructies leest, zijn het gewoon ballen in hokken.
Nog steeds: data, geen machinecode.


Fotoboek, dirigent 1 en rekenmeester

Hier verschijnt voor het eerst machinecode.
Niet in de tekens 00110001 zelf, maar in het programma dat zegt:

  • lees invoer
  • interpreteer tekens
  • voer een optelling uit
  • sla het resultaat op

Dat programma bestaat volledig uit machinecode-instructies die de CPU ophaalt en uitvoert.
De CPU gebruikt machinecode om te beslissen wat hij met de opgeslagen data moet doen.
De ALU wordt alleen actief omdat machinecode haar daartoe opdracht geeft.

👉 De invoer is data,
👉 de rekenopdracht is machinecode.


Dirigent 2

Ook hier is machinecode actief, maar indirect.
De CPU voert machinecode uit die zegt:
“Schrijf deze waarde naar het framebuffer-geheugen.”
De bits die uiteindelijk in de framebuffer staan zijn weer data, geen machinecode.
Machinecode stuurt, data wordt gestuurd.


Van Toets tot Pixels

Samengevat:

  • Van AAN/UIT → 00110001: geen machinecode, alleen conversie
  • De reeks 00110001 00101011 00110001 00111101 00001101: data (invoer)
  • Het proces dat daar 00110010 van maakt: machinecode in de CPU
  • 00110010 zelf: opnieuw data (het teken ‘2’)
Over de schrijver
https://www.linkedin.com/in/youri-hazeleger/
Reactie plaatsen