Programiranje 1/K1 2005

Izvor: SI Wiki
Pređi na navigaciju Pređi na pretragu

Zadaci

Zadatak 1

Napisati program na simboličkom mašinskom jeziku za picoComputer koji učitava pozitivnu dužinu niza N i elemente niza koje smešta počev od adrese 100. Program zatim formira niz A na osnovu niza N, tako što se u nizu A nalaze samo oni brojevi iz niza N koji su deljivi sa 3. Niz A treba smestiti počev od adrese 200. Na kraju program ispisuje sadržaj niza A.

		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

Zadatak 2

Napisati potprogram na simboličkom mašinskom jeziku za picoComputer koji za pozitivan ceo broj X određuje njegov N-ti stepen, (N >= 0). Napisati program koji sa tastature učitava brojeve X i N a zatim računa vrednost N-tog stepena broja X pozivajući dati potprogram. Unos brojeva X i N i ispisivanje rezultata treba ponavljati sve dok se za vrednost X ne unese vrednost 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