All pastes #802236 Raw Edit

Mine

public text v1 · immutable
#802236 ·published 2007-11-30 00:28 UTC
rendered paste body
// Laboratorijska vjezba 03
// By Igor Kovacic
// 0246002237

// Rjesenje u asembleru

.include "m128def.inc"

//inicijalizacija stoga
	ldi r16, LOW(RAMEND)
	out spl, r16
	ldi r16, HIGH(RAMEND)
	out sph, r16

glavni:
	ldi r31, $0
	ldi r30, $1
	ldi r29, $2
	ldi r28, $10

	// R17:R16 broj 16-bitnih podataka u polju, 6000(10)=1770(16)
	ldi r16, 0x70
	ldi r17, 0x17

	// R19:R18 donja granica, -2000(10)=F830(16)
	ldi r18, 0x30
	ldi r19, 0xF8

	// R21:R20 gornja granica, 4000(10)=0FA0(16)
	ldi r20, 0xA0
	ldi r21, 0x0F

	pocetak:
		// postavi X na 0x2000 (X=r27:r26)
		ldi r26, 0x00
		ldi r27, 0x20
		
		// broj koji se upisuje r25:r24 (kreni od -10000)
		ldi r24, 0xF0
		ldi r25, 0xD8

		// upisi broj i uvecaj X
		st X+, r24
		st X+, r25

		// povecaj broj koji se upisuje za 10
        add r24, r28
        adc r25, r31

		// smanji broj elemenata
		sub r16, r30
		sbc r17, r30

		// izadi ako je popunjeno
		cp r17, r31
		brne pocetak
		cp r16, r31
		breq potprogram

potprogram:
	ldi r26, 0x00
	ldi r27, 0x20

	ponovi:
		ld r26, X+
		ld r27, X+
		cp r26, r18
		brlt ponovi
		cp r27, r20
		brge ponovi

		cp r27, r19
		brlt ponovi
		cp r27, r21
		brge ponovi

		add r22, r30
		adc r23, r31

kraj: nop