Skip to main content
. 2020 Apr 5;20(7):2039. doi: 10.3390/s20072039
Algorithm 3 LUT-based modular reduction in source code (mod 12,289)
Input: operands R22, R23, R24, R25 17: LDI R31, hi8(LUT1_H)
18: LPM R23, Z
Output: results {R24, R25}
19: ADD R18, R22
1: CLR R26 {MOV-and-ADD} 20: ADC R19, R23
2: MUL R24, R22 21: ADC R20, R20 {Register re-use}
3: MOVW R18, R0
4: MUL R25, R23 22: MOV R30, R19
5: MOVW R20, R0 23: ANDI R19, 0X3F
24: ANDI R20, 0X01
6: MUL R24, R23 25: ANDI R30, 0XC0
7: ADD R19, R0
8: ADC R20, R1 26: ADD R30, R21
9: ADC R21, R26 27: LDI R31, hi8(LUT2_L) {LUT access}
28: ADD R31, R20
10: MUL R25, R22 29: LPM R24, Z
11: ADD R19, R0
12: ADC R20, R1 30: LDI R31, hi8(LUT2_H)
13: ADC R21, R26 31: ADD R31, R20
32: LPM R25, Z
14: MOV R30, R20
15: LDI R31, hi8(LUT1_L) {LUT access} 33: ADD R24, R18
16: LPM R22, Z 34: ADC R25, R19
35: CLR R1