1
2 .global sys32_helper
3 sys32_helper:
4
5 pushl %ebp
6 pushl %ebx
7 pushl %esi
8 pushl %edi
9 movl 5*4(%esp), %eax
10
11 movl 1*4(%eax), %ebx
12 movl 2*4(%eax), %ecx
13 movl 3*4(%eax), %edx
14 movl 4*4(%eax), %esi
15 movl 5*4(%eax), %edi
16 movl 6*4(%eax), %ebp
17 movl 0*4(%eax), %eax
18
19 call *(6*4)(%esp)
20
21
22 pushl %eax
23 movl 6*4(%esp), %eax
24 popl 0*4(%eax)
25 movl %ebx, 1*4(%eax)
26 movl %ecx, 2*4(%eax)
27 movl %edx, 3*4(%eax)
28 movl %esi, 4*4(%eax)
29 movl %edi, 5*4(%eax)
30 movl %ebp, 6*4(%eax)
31
32 popl %edi
33 popl %esi
34 popl %ebx
35 popl %ebp
36 ret
37
38 .type sys32_helper, @function
39 .size sys32_helper, .-sys32_helper
40
41 .global int80_and_ret
42 int80_and_ret:
43 int $0x80
44 ret
45
46 .type int80_and_ret, @function
47 .size int80_and_ret, .-int80_and_ret