diff --git a/SM2-MFMM-(2).md b/SM2-MFMM-(2).md index 75ea688..1926513 100644 --- a/SM2-MFMM-(2).md +++ b/SM2-MFMM-(2).md @@ -353,3 +353,30 @@ $t_0=0+0$ ``` 乘法: 5 加法:14 + +**使用MULXQ/ADCXQ/ADOXQ**: +```asm + // First reduction step + MOVQ acc0, DX + MULXQ ·np+0x00(SB), DX, AX + + MULXQ ·p2+0x00(SB), AX, t0 + ADOXQ AX, acc0 // (carry1, acc0) = acc0 + t0 * ord0 + + MULXQ ·p2+0x08(SB), AX, BX + ADCXQ t0, AX + ADOXQ AX, acc1 + + MULXQ ·p2+0x10(SB), AX, t0 + ADCXQ BX, AX + ADOXQ AX, acc2 + + MULXQ ·p2+0x18(SB), AX, acc0 + ADCXQ t0, AX + ADOXQ AX, acc3 + MOVQ $0, t0 + ADCXQ t0, acc0 + ADOXQ t0, acc0 +``` +乘法: 5 +加法:9 \ No newline at end of file