#Klooienmetcomputers

Een eerste toepassing

Arnout van Kempen over rommelen in een digitale wereld.

We hebben nu wel genoeg theorie bekeken, tijd voor een praktische toepassing. Kleine stapjes, dus veel wilder dan de eerste “Hello, World!” gaan we nog niet doen. We gaan wel eens experimenteren met bytes, words, talstelsels en dat soort zaken. Bescheiden start: een programma dat twee getallen optelt en dan de uitkomst toont.

In de meest eenvoudige vorm plaatsen we hard gecodeerd twee getallen in twee registers, tellen die op in een derde register en tonen dan de inhoud van dat derde register. Hoe makkelijk kan het zijn?

MOV X1, 5
MOV X2, 10
ADD X0, X1, X2

Kinderlijk simpel. Alleen, hoe tonen we het resultaat? Ook dat doen we om te beginnen maar heel simpel. Met een syscall naar 93, of 0x5D, exit je naar Linux en wordt de waarde in X0 meegegeven als resultaat. Het basis optelprogramma wordt dan:

.global _start

_start:
MOV X1, 5
MOV X2, 10
ADD X0, X1, X2
MOV X8, 93
SVC 0

Als je dit assembleert naar iets als “telop” kan je de uitkomst zien, al dan niet in een shell-script, met

./telop
echo $?

Het kan aardig zijn om wat andere waarden in X1 en X2 te plaatsen. Probeer eens waarden die bij optelling boven 0xFF uitkomen en boven 0xFFFF en zo verder. Of vervang de ADD door een SUB en experimenteer daar mee. Probeer ook eens met hexadecimale getallen te werken.

De volgende keer gaan we proberen de uitkomst zelf op het scherm te krijgen, in plaats van via een exit-code.

Wie mee wil doen met #klooienmetcomputers kan dat doen via GitHub. Maak een account op github.com en zoek naar Abmvk/kmc. Het account Abmvk volgen kan ook. Lezers zijn vrij te gebruiken wat ze willen en om zelf zaken toe te voegen of aan te passen, vragen te stellen of commentaar te leveren.

Arnout van Kempen di CCO CISA is directeur compliance & risk bij aaff, de fusieorganisatie van Alfa en ABAB. Hij schrijft op persoonlijke titel.

Gerelateerd

3 reacties

Ron Heinen

Als toelichting op de eerdere reactie:

Op het Ndax Quantum Systeem op de Ndix Internet Exchange van de Universiteit Twente, zie bijvoorbeeld

https://photos.app.goo.gl/XRcRX84H48EvhX9i9

heeft 'Planet Finance' geen antwoord.

Ron Heinen

@Arnout van Kempen

Je schrijft als reactie op een reactie van mij op:

https://www.accountant.nl/discussie/columns/2025/4/ai-in-de-audit-morgen-wordt-echt-niet-veel-spannender-dan-gebruik-van-data-analyse-vandaag/

"Ron, ofwel je weet wel beter, of je hebt sinds MS-DIS geen modern besturingssysteem meer meegemaakt. Ik vermoed dat je wel beter weet. Een normale programmeur, ook bij gebruik van talen als C, heeft geen zicht op wat de computer werkelijk doet. Multi-tasking, multi-user, virtual systemen, zorgen dat je als reguliere programmeur niet meer bij het bare metalen komt.

En dat het in theorie wel KAN, en dat er ook systeemprogrammeurs zijn en rmbedded systems programmeurs weet ik ook wel. Maar we weten allebei dat dat theoretische schijnbewegingen zijn om mijn valide punt te weerleggen. We weten beiden echt wel beter."

Ik kan je verzekeren dat er netwerken met computers zijn welke we volledig onder controle hebben.

Een voorbeeld hiervan kun je vinden in sharing_secrets.pdf op:

https://spideroak.com/browse/share/UTwente/RNG/Research/

Ron Heinen

Het equivalente programma voor macOS computers welke draaien op ARM M-processors is:

.global _start

_start:
MOV X1, 5
MOV X2, 10
ADD X0, X1, X2
mov x16, #1
svc 0

Reageren op een artikel kan tot drie maanden na plaatsing. Reageren op dit artikel is daarom niet meer mogelijk.

Aanmelden nieuwsbrief

Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.