Wie erweitere ich die Addition zweier 16bit integer Zahlen auf die Addition einer 16bit Zahl zu einer 32bit long Zahl?
Ausgangspunkt: 16bit Zahl A zu 16bit-Zahl B addieren und Zahl B überschreiben:
!LD R16, X+ 'X-Pointer zeigt auf 16bit Variable A (ein Array-Element)
!LD R17, X+
!LD R18, Z 'Z-Pointer zeigt auf 16-bit Variable B (ebenfalls Array-element)
!LD R19, Z+1
!ADD R16, R18 'Addiere B zu A
!ADC R17, R19
!ST Z+, R16 'B wird mit B+A überschrieben
!ST Z+, R17
Nach dem !ADC R17, R19 müssten jetzt zwei weitere LD's und ADC's kommen, um das Carry-Bit weiter zu addieren. Es gibt aber wohl keinen ADC immidiate Befehl (wie ADC R16,0).
Weiss jemand wie man's macht?
Ausgangspunkt: 16bit Zahl A zu 16bit-Zahl B addieren und Zahl B überschreiben:
!LD R16, X+ 'X-Pointer zeigt auf 16bit Variable A (ein Array-Element)
!LD R17, X+
!LD R18, Z 'Z-Pointer zeigt auf 16-bit Variable B (ebenfalls Array-element)
!LD R19, Z+1
!ADD R16, R18 'Addiere B zu A
!ADC R17, R19
!ST Z+, R16 'B wird mit B+A überschrieben
!ST Z+, R17
Nach dem !ADC R17, R19 müssten jetzt zwei weitere LD's und ADC's kommen, um das Carry-Bit weiter zu addieren. Es gibt aber wohl keinen ADC immidiate Befehl (wie ADC R16,0).
Weiss jemand wie man's macht?