blob: e52f2e086e315326a272d3f94f8e0ebeeb01dac7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
global userspace_init
extern _binary_usrbin_bin_start
extern _binary_usrbin_bin_size
userspace_init:
push ebp
mov ebp, esp
push esi
push edi
mov ecx, _binary_usrbin_bin_size
mov esi, _binary_usrbin_bin_start
mov edi, 0x100000
.loop:
movsb
dec ecx
jz .end
jmp .loop
.end:
pop edi
pop esi
call usrcall
pop ebp
ret
usrcall:
push ebp
mov ebp, esp
cli
mov ax, 0x23
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov eax, esp
push dword 0x23
push eax
pushf
push dword 0x1B
push dword 0x00100000
iret
pop ebp
ret
|