blob: ad9884f3a881c87a7b5c8f02a5b2ec947fe5cdf9 (
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
|
.global _start
_start:
# copy reent to this page
push %ebx
push %ecx
mov _impure_ptr,%eax
mov $0xf5000000,%ebx
copy:
mov (%eax),%ecx
mov %ecx,(%ebx)
add $4, %ebx
add $4, %eax
cmp $0xf5001000,%ebx
jne copy
pop %ecx
pop %ebx
# environment adress was passed on stack
movl $0xf5000000, _impure_ptr
pop %eax
mov %eax, environ
# call main (argc and argv are on the stack)
call main
# push exit code and pass to _exit syscall
push %eax
call _exit
# this should never be reached!
.wait:
hlt
jmp .wait
|