3. Naloge: Podprogrami in sklad
1. Napišite podprogram, ki v znakovnem nizu poljubne dolžine (naslov v R0), ki se zaključi z 0, vse male črke nadomesti z velikimi. Upoštevajte, da v nizu niso samo črke! Obvezno uporabite zanko. Testni niz v vašem programu naj bo
niz: .ascii "OR: petek 12-14" @ testni niz
.byte 0 @ zaključna ničla
Namig: Za vsak znak niza ugotovite ali je mala črka in v tem primeru s pomočjo ustreznega logičnega ukaza pobrišite bit. ASCII kod ni potrebno poznati, pomagajte si npr. tako: cmp r1, #'a'. Rezultat preverite s pomnilniškim oknom simulatorja.
2. Napišite podprogram za računanje fakultete n!. Lahko napišete rekurzivno in/ali nerekurzivno izvedbo. Ideja rekurzivne izvedbe:
n! = 1 za n ≤ 1 (robni pogoj)
n! = n * (n − 1)! za n ≥ 2 (rekurzivni korak)
Pravilnost preverite na nekaj primerih (npr. 5!=120)
3.Napišite podprogram, ki prekopira z ničlo zaključen znakovni niz z začetnim naslovom v r0 na konec z ničlo zaključenega znakovnega niza, katerega začetni naslov se nahaja v r1.
niz1: .asciz "Prvi niz_" @ prvi niz
niz2: .asciz "Drugi niz" @ drugi niz
.space 40 @ prostor za daljsi niz
Namig: Najprej poiščite konec znakovnega niza z začetkom v r1. Nato sem prekopirajte niz z začetkom v r0 in ga s tem dodajte na konec niza z začetkom v r1.