Assembler-Beispiel ED - SBC $hhll.asm
Aus C64-Wiki
Zur Navigation springenZur Suche springen
; Diese Programm macht eine 16-Bit-Subtraktion ; und gibt das Ergebnis am Bildschirm aus. ; Programmstart mit SYS 49152 *=$c000 ; Startadresse des Programms AXOUT = $bdcd start sec ; Carry-Bit setzen lda l_zahl1 ; Low-Byte der 1.Zahl mit sbc l_zahl2 ; Low-Byte der 2. Zahl subtrahieren sta l_ergebnis ; Low-Byte ins Ergebnis schreiben ; Vor der High-Byte-Subtraktion wird das Carry-Bit nicht gesetzt, ; weil sein Wert anzeigt, ob ein Unterlauf bei Low erfolgte. lda h_zahl1 ; High-Byte der 1. Zahl mit sbc h_zahl2 ; High-Byte der 2. Zahl subtrahieren sta h_ergebnis ; High-Byte ins Ergebnis schreiben ldx l_ergebnis ; Low-Byte des Ergebnisses ins X-Register lda h_ergebnis ; High-Byte des Ergebnisses in den Akku jsr AXOUT ; 16-Bit-Zahl ausgeben rts ; Rücksprung zu BASIC l_zahl1 .byte $55 ; Zahl1 = $4155 h_zahl1 .byte $41 l_zahl2 .byte $00 ; Zahl2 = $1000 h_zahl2 .byte $10 l_ergebnis .byte $00 ; Ergebnis = $0000 h_ergebnis .byte $00