about summary refs log tree commit diff
path: root/historical/exit-code.gnu.asm
diff options
context:
space:
mode:
Diffstat (limited to 'historical/exit-code.gnu.asm')
-rw-r--r--historical/exit-code.gnu.asm29
1 files changed, 29 insertions, 0 deletions
diff --git a/historical/exit-code.gnu.asm b/historical/exit-code.gnu.asm
new file mode 100644
index 0000000..48b7e62
--- /dev/null
+++ b/historical/exit-code.gnu.asm
@@ -0,0 +1,29 @@
+/*
+ * This file was a very early example, written by consulting [1]. It was
+ * useful primarily to see how the GNU assembler handles these opcodes, to
+ * better understand the encoding.
+ *
+ * [1] https://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
+ *
+ *
+ * gcc -o exit-code -nostartfiles -nostdlib exit-code.gnu.asm && ./exit-code ; echo $?
+ *
+ * or
+ *
+ * as -o exit-code.o exit-code.gnu.asm && ld -s -o exit-code exit-code.o && ./exit-code; echo $?
+ *
+ * Can't use nasm, nasm is 32-bit only.
+ *
+ * Since you get a nice clean file, you can then do:
+ *
+ * objdump --disassemble exit-code
+ */
+.text
+
+.global _start
+
+_start:
+        mov $60, %eax
+        mov $42, %edi
+        syscall
+