/* $OpenXM: OpenXM_contrib2/asir2000/asm/asmiw.c,v 1.1 1999/12/03 07:39:06 noro Exp $ */ unsigned int dm(a1,a2,u) unsigned int a1,a2,*u; { __asm { mov eax,a1 mul a2 mov ebx,u mov DWORD PTR [ebx],edx } } unsigned int dma(a1,a2,a3,u) unsigned int a1,a2,a3,*u; { __asm { mov eax,a1 mul a2 add eax,a3 adc edx,0 mov ebx,u mov DWORD PTR [ebx],edx } } unsigned int dma2(a1,a2,a3,a4,u) unsigned int a1,a2,a3,a4,*u; { __asm { mov eax,a1 mul a2 add eax,a3 adc edx,0 add eax,a4 adc edx,0 mov ebx,u mov DWORD PTR [ebx],edx } } unsigned int dmb(base,a1,a2,u) unsigned int base,a1,a2,*u; { __asm { mov eax,a1 mul a2 div base mov ebx,u mov DWORD PTR [ebx],eax mov eax,edx } } unsigned int dmab(base,a1,a2,a3,u) unsigned int base,a1,a2,a3,*u; { __asm { mov eax,a1 mul a2 add eax,a3 adc edx,0 div base mov ebx,u mov DWORD PTR [ebx],eax mov eax,edx } } unsigned int dsab(base,a1,a2,u) unsigned int base,a1,a2,*u; { __asm { mov edx,a1 mov eax,a2 div base mov ebx,u mov DWORD PTR [ebx],eax mov eax,edx } } unsigned int dmar(a1,a2,a3,d) unsigned int a1,a2,a3,d; { __asm { mov eax,a1 mul a2 add eax,a3 adc edx,0 div d mov eax,edx } }