Програмирање 1/К1 2018
Пређи на навигацију
Пређи на претрагу
Zadaci
Zadatak 1
Napisati program na simboličkom mašinskom jeziku za picoComputer koji na osnovu niza celih brojeva dužine N (gde je 1<N≤100) formira novi niz čiji će svaki element sadržati najveći delilac bez ostatka odgovarajućeg elementa polaznog niza, ne računajući sam taj element. Program najpre učitava broj N, a zatim i elemente niza. Ukoliko se za dužinu niza unese nekorektna vrednost, program treba da završi svoje izvršavanje. Nakon unosa program vrši zahtevanu obradu i ispisuje novoformirani niz. Određivanje najvećeg delioca zadatog broja realizovati kao zaseban potprogram.
n=1
i=2
adrA=3
adrB=6
a=100
b=200
pom=4
nzd=5
del=7
ORG 8 ; TODO: Adjust to make room for static data.
; Program entry point
in n
mov i, 100
bgt 0, n, kraj
bgt n,i, kraj
mov adrA,#a
mov adrB,#b
in (adrA), n
mov i,n
petlja:jsr najmanjiZajDel
mov (adrB),nzd
add adrB,adrB,1
add adrA,adrA,1
sub i,i,1
bgt i,0, petlja
mov adrB,#b
out (adrB),n
kraj: stop
najmanjiZajDel: mov del, 1
mov nzd,1
ponovi: div pom, (adrA), del
mul pom,pom,del
bgt (adrA),pom, nije
mov nzd,del
nije: add del,del,1
bgt (adrA),del,ponovi
rts