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.
Gerelateerd

Tools voor debugging
Arnout van Kempen over rommelen in een digitale wereld.

Een echt project!
Arnout van Kempen over rommelen in een digitale wereld.

It is I, Leclerc
Arnout van Kempen over rommelen in een digitale wereld.

RISCy business
Arnout van Kempen over rommelen in een digitale wereld.

Conditionele commando's
Arnout van Kempen over rommelen in een digitale wereld.