Changeset 21783 for branches/gcc-kmk/src/kernel32/asmutil.asm
- Timestamp:
- Nov 2, 2011, 11:13:48 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/gcc-kmk/src/kernel32/asmutil.asm
r21343 r21783 11 11 NAME except 12 12 13 DATA32 14 DATA32 15 CONST32_RO 16 CONST32_RO 17 BSS32 18 BSS32 19 DGROUP 20 assumecs:FLAT, ds:FLAT, ss:FLAT, es:FLAT13 DATA32 segment dword use32 public 'DATA' 14 DATA32 ends 15 CONST32_RO segment dword use32 public 'CONST' 16 CONST32_RO ends 17 BSS32 segment dword use32 public 'BSS' 18 BSS32 ends 19 DGROUP group BSS32, DATA32 20 assume cs:FLAT, ds:FLAT, ss:FLAT, es:FLAT 21 21 22 22 extrn Dos32TIB:abs … … 24 24 CODE32 SEGMENT DWORD PUBLIC USE32 'CODE' 25 25 26 PUBLIC getEAX27 PUBLIC getEBX 28 getEAX proc near 29 ret 30 getEAX endp 31 32 public getEDX 33 getEDX proc near 34 mov EAX, EDX 35 ret 36 endp 37 38 getEBXproc near26 PUBLIC _getEAX 27 _getEAX proc near 28 ret 29 _getEAX endp 30 31 PUBLIC _getEDX 32 _getEDX proc near 33 mov EAX, EDX 34 ret 35 _getEDX endp 36 37 PUBLIC _getEBX 38 _getEBX proc near 39 39 mov eax, ebx 40 40 ret 41 getEBX endp 41 _getEBX endp 42 43 IFNDEF __GNUC__ 42 44 43 45 PUBLIC GetFS … … 52 54 mov fs, eax 53 55 ret 54 SetFS endp 55 56 PUBLIC getCS 57 getCS proc near 56 SetFS endp 57 58 ENDIF ; __GNUC__ 59 60 PUBLIC _getCS 61 _getCS proc near 58 62 mov eax, cs 59 63 ret 60 getCSendp61 62 PUBLIC getDS63 getDSproc near64 _getCS endp 65 66 PUBLIC _getDS 67 _getDS proc near 64 68 mov eax, ds 65 69 ret 66 getDS endp 70 _getDS endp 71 72 IFNDEF __GNUC__ 67 73 68 74 PUBLIC SetReturnFS … … 75 81 SetReturnFS endp 76 82 77 PUBLIC getSS 78 getSS proc near 83 ENDIF ; __GNUC__ 84 85 PUBLIC _getSS 86 _getSS proc near 79 87 mov ax, ss 80 88 ret 81 getSSendp82 83 PUBLIC getES84 getESproc near89 _getSS endp 90 91 PUBLIC _getES 92 _getES proc near 85 93 mov eax, es 86 94 ret 87 getESendp88 89 PUBLIC getGS90 getGSproc near95 _getES endp 96 97 PUBLIC _getGS 98 _getGS proc near 91 99 mov eax, gs 92 100 ret 93 getGSendp94 95 PUBLIC getESP96 getESPproc near101 _getGS endp 102 103 PUBLIC _getESP 104 _getESP proc near 97 105 mov eax, esp 98 106 ret 99 getESP endp 107 _getESP endp 108 109 IFNDEF __GNUC__ 100 110 101 111 PUBLIC RestoreOS2FS … … 106 116 ret 107 117 RestoreOS2FS endp 118 119 ENDIF ; __GNUC__ 108 120 109 121 PUBLIC _Mul32x32to64 … … 129 141 _Mul32x32to64 endp 130 142 131 132 133 134 _Sub64 143 align 4h 144 145 public _Sub64 146 _Sub64 proc 135 147 136 148 ; 34 c = a - b; … … 143 155 mov edi, [ebp+10h] ;&c 144 156 mov esi, [ebp+08h] ;&a 145 moveax,[esi] ;a.low146 movedx,[esi+04h] ;a.high157 mov eax,[esi] ;a.low 158 mov edx,[esi+04h] ;a.high 147 159 mov esi, [ebp+0ch] ;&b 148 subeax,[esi] ;b.low149 sbbedx,[esi+04h] ;b.high160 sub eax,[esi] ;b.low 161 sbb edx,[esi+04h] ;b.high 150 162 151 163 mov [edi], eax ;c.low … … 156 168 pop esi 157 169 leave 158 ret 159 _Sub64 160 161 162 163 164 _Add64 170 ret 171 _Sub64 endp 172 173 align 4h 174 175 public _Add64 176 _Add64 proc 165 177 166 178 ; 25 c = a + b; … … 173 185 mov edi, [ebp+10h] ;&c 174 186 mov esi, [ebp+08h] ;&a 175 moveax,[esi] ;a.low176 movedx,[esi+04h] ;a.high187 mov eax,[esi] ;a.low 188 mov edx,[esi+04h] ;a.high 177 189 mov esi, [ebp+0ch] ;&b 178 addeax,[esi] ;b.low179 adcedx,[esi+04h] ;b.high190 add eax,[esi] ;b.low 191 adc edx,[esi+04h] ;b.high 180 192 181 193 mov [edi], eax ;c.low … … 186 198 pop esi 187 199 leave 188 ret 189 190 _Add64 191 192 193 194 195 200 ret 201 202 _Add64 endp 203 204 205 align 4h 206 207 public _set_bit 196 208 ;void CDECL set_bit(int bitnr, void *addr); 197 209 _set_bit proc near … … 207 219 _set_bit endp 208 220 209 210 211 221 align 4h 222 223 public _test_bit 212 224 ;int CDECL test_bit(int bitnr, void *addr); 213 225 _test_bit proc near … … 225 237 _test_bit endp 226 238 227 239 public _clear_bit 228 240 ;void CDECL clear_bit(int bitnr, void *addr); 229 241 _clear_bit proc near
Note:
See TracChangeset
for help on using the changeset viewer.