source: trunk/src/oleaut32/asmutil.asm@ 10367

Last change on this file since 10367 was 5845, checked in by sandervl, 24 years ago

updates

File size: 2.0 KB
Line 
1; $Id: asmutil.asm,v 1.2 2001-05-31 07:14:00 sandervl Exp $
2
3;
4; asmutil.asm utility functions for typelib::invoke
5;
6; Project Odin Software License can be found in LICENSE.TXT
7;
8
9 NAME asmutil
10.586p
11.MMX
12
13CODE32 SEGMENT DWORD USE32 PUBLIC 'CODE'
14CODE32 ENDS
15DATA32 SEGMENT DWORD USE32 PUBLIC 'DATA'
16DATA32 ENDS
17CONST32 SEGMENT DWORD USE32 PUBLIC 'CONST'
18CONST32 ENDS
19BSS32 SEGMENT DWORD USE32 PUBLIC 'BSS'
20BSS32 ENDS
21DGROUP GROUP CONST32, BSS32, DATA32
22 ASSUME CS:FLAT, DS:FLAT, SS:FLAT, ES:FLAT
23 DATA32 SEGMENT
24 DATA32 ENDS
25 BSS32 SEGMENT
26 BSS32 ENDS
27 CONST32 SEGMENT
28 CONST32 ENDS
29
30
31CODE32 SEGMENT
32
33 PUBLIC _invokeStdCallDouble
34;double CDECL invokeStdCallDouble(PVOID function, int paramsize, PVOID pStack);
35_invokeStdCallDouble PROC NEAR
36 push ebp
37 mov ebp, esp
38 push ecx
39 push ebx
40
41 mov eax, dword ptr [ebp+16] ;pStack
42 mov ecx, dword ptr [ebp+12] ; paramsize (in dwords)
43
44pushparam:
45 mov ebx, dword ptr [eax]
46 push ebx
47 sub eax, 4
48
49 dec ecx
50 jnz pushparam
51
52 call dword ptr [ebp+8] ;call function
53
54 pop ebx
55 pop ecx
56 pop ebp
57 ret
58_invokeStdCallDouble ENDP
59
60 PUBLIC _invokeStdCallDword
61;DWORD CDECL invokeStdCallDword(PVOID function, int paramsize, PVOID pStack);
62_invokeStdCallDword PROC NEAR
63 push ebp
64 mov ebp, esp
65 push ecx
66 push ebx
67
68 mov eax, dword ptr [ebp+16] ;pStack
69 mov ecx, dword ptr [ebp+12] ; paramsize (in dwords)
70
71pushparam:
72 mov ebx, dword ptr [eax]
73 push ebx
74 sub eax, 4
75
76 dec ecx
77 jnz pushparam
78
79 call dword ptr [ebp+8] ;call function
80
81 pop ebx
82 pop ecx
83 pop ebp
84 ret
85_invokeStdCallDword ENDP
86
87CODE32 ENDS
88
89 END
Note: See TracBrowser for help on using the repository browser.