#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

reacties

Reageer op dit artikel

Spelregels debat

    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.