mescc: Mes C Library: Move posix bits to read.
[mes.git] / lib / x86-mes-gcc / exit-42.S
1 /*
2  * GNU Mes --- Maxwell Equations of Software
3  * Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
4  *
5  * This file is part of GNU Mes.
6  *
7  * GNU Mes is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or (at
10  * your option) any later version.
11  *
12  * GNU Mes is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with GNU Mes.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 /** Commentary: */
22
23 /* Using gdb, esp. GUD in GNU Emacs is recommended
24 M-x gdb-display-disassembly-buffer
25 M-x gdb-display-io-buffer
26 set disassemble-next-line on
27 break _start
28 run
29 info registers
30 si
31 p/x $eax
32 RET
33 ...
34 */
35
36 /** Code: */
37
38 SYS_exit = 1                    /* Linux syscall: exit.  */
39         .globl _start           /* Magic linker symbol: --entry-address.  */
40
41         .text                   /* Program text. */
42 _start:
43         mov     $SYS_exit,%eax  /* System call function: exit, in %eax.  */
44         mov     $42,%ebx        /* First parameter: exit status, in %ebx. */
45         int     $0x80           /* Call system.  */
46         hlt                     /* Should not be reached.  */