mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-08-08 06:03:47 +08:00
add sm2
This commit is contained in:
@@ -9,49 +9,49 @@
|
|||||||
int muldiv(a,b,c,m,rp)
|
int muldiv(a,b,c,m,rp)
|
||||||
int a,b,c,m,*rp;
|
int a,b,c,m,*rp;
|
||||||
{
|
{
|
||||||
ASM ("mov eax,DWORD PTR a");
|
ASM ("mov %eax,DWORD PTR a");
|
||||||
ASM ("mul DWORD PTR b");
|
ASM ("mul DWORD PTR b");
|
||||||
ASM ("add eax,DWORD PTR c");
|
ASM ("add %eax,DWORD PTR c");
|
||||||
ASM ("adc edx,0h");
|
ASM ("adc %edx,0h");
|
||||||
ASM ("div DWORD PTR m");
|
ASM ("div DWORD PTR m");
|
||||||
ASM ("mov ebx,DWORD PTR rp");
|
ASM ("mov %ebx,DWORD PTR rp");
|
||||||
ASM ("mov [ebx],edx");
|
ASM ("mov [%ebx],%edx");
|
||||||
}
|
}
|
||||||
|
|
||||||
int muldvm(a,c,m,rp)
|
int muldvm(a,c,m,rp)
|
||||||
int a,c,m,*rp;
|
int a,c,m,*rp;
|
||||||
{
|
{
|
||||||
ASM ("mov edx,DWORD PTR a");
|
ASM ("mov %edx,DWORD PTR a");
|
||||||
ASM ("mov eax,DWORD PTR c");
|
ASM ("mov %eax,DWORD PTR c");
|
||||||
ASM ("div DWORD PTR m");
|
ASM ("div DWORD PTR m");
|
||||||
ASM ("mov ebx,DWORD PTR rp");
|
ASM ("mov %ebx,DWORD PTR rp");
|
||||||
ASM ("mov [ebx],edx");
|
ASM ("mov [%ebx],%edx");
|
||||||
}
|
}
|
||||||
|
|
||||||
int muldvd(a,b,c,rp)
|
int muldvd(a,b,c,rp)
|
||||||
int a,b,c,*rp;
|
int a,b,c,*rp;
|
||||||
{
|
{
|
||||||
ASM ("mov eax,DWORD PTR a");
|
ASM ("mov %eax,DWORD PTR a");
|
||||||
ASM ("mul DWORD PTR b");
|
ASM ("mul DWORD PTR b");
|
||||||
ASM ("add eax,DWORD PTR c");
|
ASM ("add %eax,DWORD PTR c");
|
||||||
ASM ("adc edx,0h");
|
ASM ("adc %edx,0h");
|
||||||
ASM ("mov ebx,DWORD PTR rp");
|
ASM ("mov %ebx,DWORD PTR rp");
|
||||||
ASM ("mov [ebx],eax");
|
ASM ("mov [%ebx],%eax");
|
||||||
ASM ("mov eax,edx");
|
ASM ("mov %eax,%edx");
|
||||||
}
|
}
|
||||||
|
|
||||||
void muldvd2(a,b,c,rp)
|
void muldvd2(a,b,c,rp)
|
||||||
int a,b,*c,*rp;
|
int a,b,*c,*rp;
|
||||||
{
|
{
|
||||||
ASM ("mov eax,DWORD PTR a");
|
ASM ("mov %eax,DWORD PTR a");
|
||||||
ASM ("mul DWORD PTR b");
|
ASM ("mul DWORD PTR b");
|
||||||
ASM ("mov ebx,DWORD PTR c");
|
ASM ("mov %ebx,DWORD PTR c");
|
||||||
ASM ("add eax,[ebx]");
|
ASM ("add %eax,[%ebx]");
|
||||||
ASM ("adc edx,0h");
|
ASM ("adc %edx,0h");
|
||||||
ASM ("mov esi,DWORD PTR rp");
|
ASM ("mov %esi,DWORD PTR rp");
|
||||||
ASM ("add eax,[esi]");
|
ASM ("add %eax,[esi]");
|
||||||
ASM ("adc edx,0h");
|
ASM ("adc %edx,0h");
|
||||||
ASM ("mov [esi],eax");
|
ASM ("mov [%esi],%eax");
|
||||||
ASM ("mov [ebx],edx");
|
ASM ("mov [%ebx],%edx");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user