Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int div64(int hi, int lo, int divisor, int *premainder)
- {
- __asm
- {
- mov edx, DWORD PTR [hi];
- mov eax, DWORD PTR [lo];
- idiv DWORD PTR [divisor]
- mov ecx, DWORD PTR [premainder]
- mov DWORD PTR [ecx], edx
- }
- }
- int Test(int hi, int lo, int divisor)
- {
- int remainder;
- return div64(hi, lo, divisor, &remainder);
- }
- ---------------
- PUBLIC ?div64@@YGHHHHPAH@Z ; div64
- _TEXT SEGMENT
- _hi$ = 8 ; size = 4
- _lo$ = 12 ; size = 4
- _divisor$ = 16 ; size = 4
- _premainder$ = 20 ; size = 4
- ?div64@@YGHHHHPAH@Z PROC ; div64, COMDAT
- mov edx, DWORD PTR _hi$[esp-4]
- mov eax, DWORD PTR _lo$[esp-4]
- idiv DWORD PTR _divisor$[esp-4]
- mov ecx, DWORD PTR _premainder$[esp-4]
- mov DWORD PTR [ecx], edx
- ret 16
- ?div64@@YGHHHHPAH@Z ENDP ; div64
- _TEXT ENDS
- PUBLIC ?Test@@YGHHHH@Z ; Test
- _TEXT SEGMENT
- _remainder$ = -8 ; size = 4
- $T70693 = -4 ; size = 4
- _hi$ = 8 ; size = 4
- _lo$ = 12 ; size = 4
- _divisor$ = 16 ; size = 4
- ?Test@@YGHHHH@Z PROC ; Test, COMDAT
- sub esp, 8
- lea eax, DWORD PTR _remainder$[esp+8]
- mov DWORD PTR $T70693[esp+8], eax
- mov edx, DWORD PTR _hi$[esp+4]
- mov eax, DWORD PTR _lo$[esp+4]
- idiv DWORD PTR _divisor$[esp+4]
- mov ecx, DWORD PTR $T70693[esp+8]
- mov DWORD PTR [ecx], edx
- add esp, 8
- ret 12
- ?Test@@YGHHHH@Z ENDP ; Test
- _TEXT ENDS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement