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
