Програмирање 1/К1 2005
Пређи на навигацију
Пређи на претрагу
Задаци
Задатак 1
Написати програм на симболичком машинском језику за picoComputer који учитава позитивну дужину низа N и елементе низа које смешта почев од адресе 100. Програм затим формира низ A на основу низа N, тако што се у низу А налазе само они бројеви из низа N који су дељиви са 3. Низ А треба сместити почев од адресе 200. На крају програм исписује садржај низа А.
n=1
i=4
adrN=2
adrA=3
a=200
b=100
pom=5
ORG 8 ; TODO: Adjust to make room for static data.
in n
bgt 0,n,kraj
mov adrN,#b
mov adrA,#a
in (adrN),n
mov i,n
petlja: jsr deljivSaTri
beq pom,0,skok
mov (adrA),(adrN)
add adrA,adrA,1
skok: add adrN,adrN,1
sub i,i,1
bgt i,0,petlja
sub n,adrA,#a
mov adrA,#a
out (adrA),n
kraj: stop
deljivSaTri: div pom, (adrN),3
mul pom,pom,3
beq pom, (adrN),staviJedan
mov pom,0
beq pom,pom,iskoci
staviJedan: mov pom,1
iskoci:rts
Задатак 2
Написати потпрограм на симболичком машинском језику за picoComputer који за позитиван цео број X одређује његов N-ти степен, (N >= 0). Написати програм који са тастатуре учитава бројеве X и N а затим рачуна вредност N-тог степена броја X позивајући дати потпрограм. Унос бројева X и N и исписивање резултата треба понављати све док се за вредност X не унесе вредност 0.
x=1
n=2
pom=3
ORG 8
petlja: in x
bgt 0,x,kraj
beq 0,x,kraj
in n
bgt 0,n,kraj
jsr stepen
out x
beq x,x,petlja
kraj: stop
stepen: mov pom,x
beq n,0,staviJedan
sub n,n,1
beq n,0,izadji
ponavljaj:mul x,pom,x
sub n,n,1
bgt n,0,ponavljaj
beq n,n,izadji
staviJedan: mov x,1
izadji:rts