Dag mensen,
Voor mijn studie moet ik een programma schrijven in assembly die macht kan verheffen.
Nu heb ik het volgens mij af alleen het afdrukken gaat niet goed en daar snap ik dus helemaal niets van. Misschien dat er hier iemand is die me een klein beetje op weg kan helpen met deze wazige bende.
Hier is mijn code:
Merk op dat ik de functie vermenigvuldig even voor het gemak totaal over sla om het printen te testen.
Wat gebeurt er onderaan nou? Nou:
laad 0 in het l register.
en dan print_unsigned aanroepen
Dan geeft hij dus 00 weer.
Als ik bijvoorbeeld 1 laad, dan geeft hij 11
en 123 geeft hij 1233
Bij helemaal niets geeft hij 433 terug
Ik word hier helemaal gek van en snap niet wat er nou mis gaat dus misschien dat iemand me een paar kleine hints kan geven.
Bedankt
Voor mijn studie moet ik een programma schrijven in assembly die macht kan verheffen.
Nu heb ik het volgens mij af alleen het afdrukken gaat niet goed en daar snap ik dus helemaal niets van. Misschien dat er hier iemand is die me een klein beetje op weg kan helpen met deze wazige bende.
Hier is mijn code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| ;start op geheugenadres: org 50000 ;grondgetal ld b,4 ;macht ld c,3 ;vasthouden van uitkomst ld d,11 jp main vermenigvuldig: ;laad uitkomst in rekenregister a ld a, d ;laad uitkomst in aftelregister c ld c, d ;tel uitkomst op bij a add a,d ;haal een van het aftelregister af dec c ;zet a weg in b ld b,a ;laad c in a om te vergelijken ld a, c ;vergelijk cp 0 ;als het niet 0 is herhaal jp nz, vermenigvuldig ;zet uitkomst weer in d ld d, b ;anders terug naar main ret main: ;vermenigvuldig ;call vermenigvuldig ;verlaag macht dec c ;laad c in a om te vergelijken ld a, c ;vergelijk cp 0 ;niet nul? terug naar boven jp nz, main ;anders printen ld a, 0 ld b, 0 ld c, 0 ld d, 0 ld l, 0 call print_unsigned8 include "print_unsigned8.asm" |
Merk op dat ik de functie vermenigvuldig even voor het gemak totaal over sla om het printen te testen.
Wat gebeurt er onderaan nou? Nou:
laad 0 in het l register.
en dan print_unsigned aanroepen
Dan geeft hij dus 00 weer.
Als ik bijvoorbeeld 1 laad, dan geeft hij 11
en 123 geeft hij 1233
Bij helemaal niets geeft hij 433 terug
Ik word hier helemaal gek van en snap niet wat er nou mis gaat dus misschien dat iemand me een paar kleine hints kan geven.
Bedankt