0001
0002 .global sys32_helper
0003 sys32_helper:
0004
0005 pushl %ebp
0006 pushl %ebx
0007 pushl %esi
0008 pushl %edi
0009 movl 5*4(%esp), %eax
0010
0011 movl 1*4(%eax), %ebx
0012 movl 2*4(%eax), %ecx
0013 movl 3*4(%eax), %edx
0014 movl 4*4(%eax), %esi
0015 movl 5*4(%eax), %edi
0016 movl 6*4(%eax), %ebp
0017 movl 0*4(%eax), %eax
0018
0019 call *(6*4)(%esp)
0020
0021
0022 pushl %eax
0023 movl 6*4(%esp), %eax
0024 popl 0*4(%eax)
0025 movl %ebx, 1*4(%eax)
0026 movl %ecx, 2*4(%eax)
0027 movl %edx, 3*4(%eax)
0028 movl %esi, 4*4(%eax)
0029 movl %edi, 5*4(%eax)
0030 movl %ebp, 6*4(%eax)
0031
0032 popl %edi
0033 popl %esi
0034 popl %ebx
0035 popl %ebp
0036 ret
0037
0038 .type sys32_helper, @function
0039 .size sys32_helper, .-sys32_helper
0040
0041 .global int80_and_ret
0042 int80_and_ret:
0043 int $0x80
0044 ret
0045
0046 .type int80_and_ret, @function
0047 .size int80_and_ret, .-int80_and_ret
0048
0049 .section .note.GNU-stack,"",%progbits