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
00110010van maakt: machinecode in de CPU 00110010zelf: opnieuw data (het teken ‘2’)