Now fetches argc, argv, env correctly from the host OS.
This commit is contained in:
parent
9710c14c93
commit
9b920e59cb
|
@ -15,7 +15,32 @@
|
|||
begtext:
|
||||
! This code is placed at the beginning of the ELF executable and is the
|
||||
! first thing that runs.
|
||||
|
||||
!
|
||||
! On entry, the stack looks like this:
|
||||
!
|
||||
! sp+.. NULL
|
||||
! sp+8+(4*argc) env (X quads)
|
||||
! sp+4+(4*argc) NULL
|
||||
! sp+4 argv (argc quads)
|
||||
! sp argc
|
||||
!
|
||||
! The ACK actually expects:
|
||||
!
|
||||
! sp+8 argc
|
||||
! sp+4 argv
|
||||
! sp env
|
||||
|
||||
mov eax, (esp) ! eax = argc
|
||||
lea ebx, 4(esp) ! ebx = argv
|
||||
lea ecx, (esp)(eax*4)
|
||||
add ecx, 12 ! environ
|
||||
|
||||
push ecx ! environ
|
||||
push ebx ! argc
|
||||
push eax ! argv
|
||||
push eax ! dummy, representing the return argument
|
||||
xor ebp, ebp
|
||||
|
||||
jmp __m_a_i_n
|
||||
|
||||
! This provides an emergency exit routine used by EM.
|
||||
|
|
Loading…
Reference in a new issue