X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Fcrt0.o_src%2Fcrt0.asm;h=531a3783ef31fe5404eaadb5452ba8c70cff2573;hb=2f9415b7b804073b0365781ad4f05a7306b6c890;hp=07db9de2fe662938caf49e5d61d229f01ebc6f7c;hpb=17e16b3110b4c5124b0707435e0427993d696545;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/crt0.o_src/crt0.asm b/Usermode/Libraries/crt0.o_src/crt0.asm index 07db9de2..531a3783 100644 --- a/Usermode/Libraries/crt0.o_src/crt0.asm +++ b/Usermode/Libraries/crt0.o_src/crt0.asm @@ -10,10 +10,21 @@ [global _start] [global start] [extern main] +[extern _exit] _start: start: call main - mov eax, ebx ; Set Argument 1 to Return Value - xor eax, eax ; Set EAX to SYS_EXIT (0) - int 0xAC + push eax + + mov eax, [_crt0_exit_handler] + test eax, eax + jz .exit + call eax + +.exit: + call _exit jmp $ ; This should never be reached +[section .bss] +[global _crt0_exit_handler] +_crt0_exit_handler: + resd 1