Програмирање 1/К1 2005

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Задаци

Задатак 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