24*8-Bit-Multiplikationsroutine ($ce4e) Rechnung: Reg1 = Reg2 * a + ($68) 8CE6: 85 40 STA $40 [Die Bits in $40 werden der Reihe nach Einsprung von $8CF4: 8CE8: 46 40 LSR $40 getestet (Lo-Bit zuerst). 8CEA: 90 03 BCC $8CEF Ist das Bit gesetzt, 8CEC: 20 4C 8D JSR $8D4C dann wird Reg2 zu Reg1 addiert. Einsprung von $8CEA: 8CEF: 20 44 8D JSR $8D44 Danach wird Reg2 *2 genommen und der 8CF2: A5 40 LDA $40 Vorgang wiederholt, bis kein 1-Bit mehr in 8CF4: D0 F2 BNE $8CE8 $40 ist. Reg2 wird also fuer Bit1 *1, fuer Bit2 *2, ... und fuer Bit7 *128 genommen (entsprechend der Wertigkeit der Bits).] 8CF6: A5 68 LDA $68 ($68) zu Reg1 addieren 8CF8: 18 CLC [In $68 steht normalerweise die aktuelle 8CF9: 65 5B ADC $5B Position im Record] 8CFB: 85 5B STA $5B 8CFD: 90 06 BCC $8D05 1. Uebertrag ? nein, ==> 8CFF: E6 5C INC $5C 8D01: D0 02 BNE $8D05 2. Uebertrag ? nein, ==> 8D03: E6 5D INC $5D Einsprung von $8CFD, $8D01: 8D05: 60 RTS Previous Page / Next Page |