Assembler Sprünge

Wie man in Motorola 68000 Sprünge und Sprungbedingungen in Assembler programmiert.



Sprünge in Assembler
In diesem Artikel wird gezeigt, wie einfache Sprungbedingungen und Sprünge in Assembler programmiert werden können.

Das Beispiel selber ist für einen Motorola 68000 Prozessor geschrieben.


	org $3000		;Beginne bei Adresse 3000
 
zahl1	equ	$0001
zahl2	equ	$0011
ende	equ	$3100
 
 
	clr.w d0		;Lösche Datenregister d0
	clr.w d1		;Lösche Datenregister d1
 
	move.w #zahl1,d0	;Verschiebe 0001 als Wort-Wert nach Datenregister d0
	move.w #zahl2,d1	;Verschiebe 0011 als Wort-Wert nach Datenregister d1
	move.w #ende,a0		;Verschiebe 3100 als Wort-Wert nach Adressregister a0
 
 
loop
	add.w #1,d0		;Addiere die Zahl 1 auf Wert in Datenregister d0
	move.w d0,(a0)+		;Verschiebe Wort-Wert aus d0 nach a0 und erhöhe danach die Adresse
 
	cmp #5,d0		;Prüfe ob Wert in d0=5 entspricht
	beq loop2		;Wenn d0=5,dann springe zu loop2
 
	cmp d0,d1		;Prüfe ob d0=d1 entspricht
	beq exit		;Wenn d0=d1 entspricht, dann beende
	bne loop		;Wenn d0!=d1, dann springe hoch zu loop
 
loop2
	sub.w #1,d1		;Subtrahiere 1 vom Wert in d1
	move.w d1,(a0)+		;Verschiebe Wort-Wert aus d1 nach a0 und erhöhe Adresse
 
	bra loop
 
exit
 
 
	end