2015 januari examen
- Geef de inhoud van EAX en EDX na een MOV-bevel, een ADD-bevel en een IMUL-bevel volledig, dus zowel in binair (als in hexadecimaal) als in decimaal.
- Opgelet: EDX wordt na het IMUL-bevel opgevuld met nullen of enen, naargelang het teken van de inhoud van EAX: is de inhoud van EAX na de vermenigvuldiging negatief, dan is EDX voor de rest opgevuld met enen. Is het resultaat positief, dan zijn dit nullen.
- Gegeven is een beschrijving van een SD-RAM en het hexadecimale adres van een byte. Geef DIMM-nummer, banknummer, rijnummer en kolomnummer van deze byte.
- Zet hiervoor het hexadecimale adres om naar 32-bits binair adres. De eerste 2 bits vormen het DIMM-nummer, de volgende 3 bits het banknummer, de 14 bits daarna het rijnummer en de 10 daarop het kolomnummer. De laatste 3 bits vormen het bytenummer.
- Een vraag over wachttijden en bloktransfer, waarbij CAS "3-2-1" gegeven is.
- Een programmeeroefening in verband met rijen: geef één voor één een rij van 30 dubbelwoorden in en daarna een getal "n". Het n-de getal van de rij moet teruggegeven worden. Bijvoorbeeld bij groep = 1, 20, 300, 4000, 50000 en n = 4, moet als resultaat het vierde element van de rij, dus 4000, teruggegeven worden.
%include "gt.asm"
covar
n: resd 1
uitvoer: resd 1
groep: resd 30 ; hier komen de 30 ingevoerde getallen
een: dd 1
vier: dd 4 ; elk dubbelwoord is twee woorden, en dus 4 bytes, lang
inleiding
mov ecx, 30 ; er worden 30 getallen opgevraagd en na elk getal wordt ECX met 1 verminderd
lus: inv [groep+ebx] ; gebruik hier om het even welk register, maar zorg dat ja de waarde ervan niet overschrijft!
add ebx, [vier] ; tel telkens 4 bij ebx op, zodat het ingevoerde getal na de 4 bytes van het vorig ingevoerde getal komt te staan
loop lus ; deze loop stopt wanneer ecx op 0 staat, in dit geval dus na 30 keer
inv [n]
mov eax, [n]
sub eax, [een] ; trek 1 af van n, want n begint op 0 en niet op 1
imul dword [vier] ; want 1 getal is 4 bytes
uit [groep+eax] ; als n bijvoorbeeld 4 is, dan is groep+eax hier groep+12
- Bereken het aantal MT/s bij een busbreedte van 32 bits en een debiet 66.7 MB/s.
- Leg kort uit waarom het handig is wanneer een processor over een pijplijn beschikt.
- Wat betekent 01020201 in het bevel "MOV EAX, 02010102"? Waarvan is dit afhankelijk?
- Geef de waarde van ESP voor en na een aantal PUSH- en POP-bevelen.
- Let hierbij op de lengte van het register of de waarde die/dat gePUSHt of gePOPt wordt.
- Schrijf voor onderstaande records een uitvoerbestand in de vorm van "75% van onze klanten behoort tot onze doelgroep", waarbij de doelgroep bestaat uit vrouwen die geboren zijn na 1985.
- Hou dus minstens 2 variabelen bij: het aantal vrouwen geboren na 1985, en het totaal aantal klanten. Het percentage klanten dat tot de doelgroep behoort is dan (vrouwen x 100) / totaal.
- Om de jaartallen met 1985 te vergelijken, moet je ze eerst omzetten naar binair. Hiervoor kun je tekstbin gebruiken.
- Om het percentage uit te schrijven, moet dit eerst omgezet worden naar de ASCII-voorstelling. De subroutine die je daarvoor nodig hebt, kun je best van buiten leren.
Kolom 1 - naam Kolom 25 - geslacht en geboortedatum Kolom 50 - totale uitgaven in eurocent
An V1986 5000
Betty V1972 25000
Catherine V1994 1500
Dave M1989 8000