Subversion Repositories Kolibri OS

Rev

Rev 3067 | Rev 3128 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3067 Rev 3107
Line 1... Line 1...
1
//mem.Init
1
dword mem_init()
2
dword mem_Init()
2
{
3
{
3
        $push    ebx
4
        $push    ebx
4
        $mov     eax, 68
5
        $mov     eax, 68
5
        $mov     ebx, 11
6
        $mov     ebx, 11
6
        $int     0x40
7
        $int     0x40
7
        
Line 8... Line 8...
8
        
8
        $pop     ebx
9
        $pop     ebx
9
        return  EAX;
10
        return  EAX;
10
}
Line 11... Line -...
11
}
-
 
12
 
11
 
13
//mem.Alloc
12
dword malloc(dword size)
14
dword mem_Alloc(dword size)
13
{
15
{
14
        $push    ebx
16
        $push    ebx
15
        $push    ecx
17
        $push    ecx
16
        $mov     eax, 68
Line 23... Line 22...
23
        $pop     ecx
22
        $pop     ebx
24
        $pop     ebx
23
        return  EAX;
25
        return  EAX;
24
}
26
}
25
 
Line 27... Line -...
27
 
-
 
28
//mem.ReAlloc
26
stdcall dword realloc(dword mptr, size)
29
stdcall dword mem_ReAlloc(dword mptr, size)
27
{
30
{
28
        $push    ebx
31
        $push    ebx
29
        $push    ecx
32
        $push    ecx
30
        $push    edx
33
        $push    edx
31
        $mov     eax, 68
Line 41... Line 39...
41
        $pop     ecx
39
        $pop     ebx
42
        $pop     ebx
40
        return   EAX;
43
        return   EAX;
41
}
44
}
42
 
Line 45... Line -...
45
 
-
 
46
//mem.Free
43
dword free(dword mptr)
47
void mem_Free(dword mptr)
44
{
48
{
45
        $push    eax
49
        $push    eax
46
        $push    ebx
50
        $push    ebx
47
        $push    ecx
51
        $push    ecx
48
        $mov     eax, 68
Line 57... Line 54...
57
        $int     0x40
54
   @end0:
58
   @end0:
55
        $pop     ecx
59
        $pop     ecx
56
        $pop     ebx
60
        $pop     ebx
57
        $pop     eax
61
        $pop     eax
58
        return 0;
-
 
59
}
62
}
60
 
Line 63... Line -...
63
 
-
 
64
//stdcall dword ??
61
inline fastcall memmov( EDI, ESI, ECX)
65
inline fastcall mem_Move( EDI, ESI, ECX)
62
{
66
{
63
  asm {
67
  asm {
64
    MOV EAX, ECX
68
    MOV EAX, ECX
65
    CMP EDI, ESI
69
    CMP EDI, ESI
66
    JG L1
Line 90... Line 87...
90
    CLD
87
L2:
91
L2:
88
  }
92
  }
89
}
93
}
90
 
Line -... Line 91...
-
 
91
#define mem_Alloc malloc
-
 
92
#define mem_ReAlloc realloc
-
 
93
#define mem_Free free
-
 
94
#define mem_Init mem_init
Line 94... Line 95...
94
 
95
 
95
 
96
/*:void fastcall memsetz( EDI, ECX)
96
/*:void fastcall memsetz( EDI, ECX)
97
{
97
{
98
  asm {
Line 104... Line 105...
104
    AND ECX, 3
105
    REP STOSB
105
    REP STOSB
106
  }
106
  }
107
}
107
}
108
 
Line 108... Line 109...
108
 
109
:void fastcall memset( EDI, ECX, AL) //copy AL to EDI of ECX num (void *dest, size_t, char c )
109
:void fastcall memset( EDI, ECX, AL)
110
{
110
{
111
  asm {
111
  asm {
112
    MOV AH, AL
112
    MOV AH, AL
113
    MOVZX EDX, AX
113
    MOVZX EDX, AX
114
    SHL EAX, 16