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