Spruenge

Help Contents DLX-Beispielprogramme Spruenge
Eingabe Ub2_A1a.s

Spruenge

;
	j	j2
	addi	r1,r0,5	; R1=5
Anfang:			; Anfang definiert eine Sprungmarke
	beqz	r1,fertig	; branch equal zero
			; springt, wenn die Bedingung erfüllt ist,
			; also bei R1=0
	subi	r1,r1,1	; R1--
	J	Anfang	; springe zu Anfang
fertig:			; Schleife beendet

j2:	addi	r2,r0,15
	addi	r3,r0,10

; Berechne Maximum von Register R2 und R3 und schreibe es in R4
	SGT	R10,R2,R3	; Vergleich R2>R3
				; GT = greater than,
				; LT = lower than,
				; LE = lower or equal,
				; GE = greater or equal
				; EQ = equal,
				; NE = not equal
				; das Ergbnis ist ein Boolscher Wert,
				; also 1 für true, 0 für false
	BNEZ	R10,sprung	; springt, wenn die Bedingung
				; erfüllt ist, also R2>R3
	add	r4,r0,r3
	j	Ende
sprung:	add	r4,r0,r2
Ende:

; Auf diese Weise kann ein if-then-else-Konstrukt
; in Assembler programmiert werden.

Eingabe Ub2_A1a.s