diff --git a/SM2-MFMM-(2).md b/SM2-MFMM-(2).md index cc175be..a11a9f1 100644 --- a/SM2-MFMM-(2).md +++ b/SM2-MFMM-(2).md @@ -616,3 +616,36 @@ $t_5=t_5 - 0$ 加法:9 减法:4 +**使用MULXQ**: +```asm + // First reduction step + MOVQ acc0, DX + MULXQ p256ordK0<>(SB), t0, AX + + MOVQ t0, DX + MULXQ p256ord<>+0x00(SB), AX, BX + ADDQ AX, acc0 + ADCQ BX, acc1 + + MULXQ p256ord<>+0x08(SB), AX, BX + ADCQ $0, BX + ADDQ AX, acc1 + ADCQ BX, acc2 + ADCQ $0, acc3 + ADCQ t0, acc4 + ADCQ $0, acc5 + + MOVQ t0, AX + //MOVQ t0, DX // This is not required due to t0=DX already + SHLQ $32, AX + SHRQ $32, DX + + SUBQ t0, acc2 + SBBQ AX, acc3 + SBBQ DX, acc4 + SBBQ $0, acc5 +``` +乘法: 3 +移位:2 +加法:8 +减法:4 \ No newline at end of file