This commit is contained in:
[GGSuchao]
2017-07-06 17:23:17 +08:00
committed by GGSuchao
parent 96dc55edb1
commit 7f55f996cd
3 changed files with 81 additions and 58 deletions

View File

@@ -1,57 +0,0 @@
/*
* Borland C++ 32-bit compiler (BCC32). Use with mirdef.h32
* Uses inline assembly feature. Suitable for Win32 Apps
* Also compatible with Microsoft Visual C++ 32-bit compiler
*/
#define ASM __asm__
int muldiv(a,b,c,m,rp)
int a,b,c,m,*rp;
{
ASM ("movl a,%eax");
ASM ("mull b");
ASM ("addl c,%eax");
ASM ("adcl $0x00,%edx");
ASM ("divl m");
ASM ("movl rp,%ebx");
ASM ("movl %edx,(%ebx)");
}
int muldvm(a,c,m,rp)
int a,c,m,*rp;
{
ASM ("movl a,%edx");
ASM ("movl c,%eax");
ASM ("divl m");
ASM ("movl rp,%ebx");
ASM ("movl %edx,(%ebx)");
}
int muldvd(a,b,c,rp)
int a,b,c,*rp;
{
ASM ("movl a,%eax");
ASM ("mull b");
ASM ("addl c,%eax");
ASM ("adcl $0x00,%edx");
ASM ("movl rp,%ebx");
ASM ("movl %eax,(%ebx)");
ASM ("movl %edx,%eax");
}
void muldvd2(a,b,c,rp)
int a,b,*c,*rp;
{
ASM ("movl a,%eax");
ASM ("mull b");
ASM ("movl c,%ebx");
ASM ("addl (%ebx),%eax");
ASM ("adcl $0x00,%edx");
ASM ("movl rp,%esi");
ASM ("addl (%esi),%eax");
ASM ("adcl $0x00,%edx");
ASM ("movl %eax,(%esi)");
ASM ("movl %edx,(%ebx)");
}