Assembler-Beispiel 6D - ADC $hhll.asm

Aus C64-Wiki
Zur Navigation springenZur Suche springen
; Dieses Programm addiert zwei 16-Bit-Zahlen
; und gibt das Ergebnis am Bildschirm aus.
; Programmstart mit SYS 49152

*=$c000   ; Startadresse des Programms

AXOUT = $bdcd

start      clc             ; Carry-Bit löschen
           lda l_zahl1     ; Low-Byte der 1. Zahl mit
           adc l_zahl2     ; Low-Byte der 2. Zahl addieren
           sta l_ergebnis  ; Low-Byte ins Ergebnis schreiben

           lda h_zahl1     ; High-Byte der 1. Zahl mit
           adc h_zahl2     ; High-Byte der 2. Zahl addieren
           sta h_ergebnis  ; High-Byte ins Ergebnis schreiben		

           ldx l_ergebnis  ; Low-Byte vom Ergebnis ins X-Register 
           lda h_ergebnis  ; High-Byte vom Ergebnis in den Akku
           jsr AXOUT       ; 16-Bit-Zahl ausgeben

           rts             ; Rücksprung ins Basic			

l_zahl1    .byte $00       ; Zahl1 = $1000
h_zahl1    .byte $10 
l_zahl2    .byte $55       ; Zahl2 = $2155
h_zahl2    .byte $21
l_ergebnis .byte $00       ; Ergebnis = $0000
h_ergebnis .byte $00