From 33c5e8bfb6f521d2657c5c57c5861cbcb252483d Mon Sep 17 00:00:00 2001 From: Minseong Gwak Date: Tue, 30 Dec 2025 17:28:02 +0900 Subject: [PATCH] update freestanding study --- free/.gitignore | 2 ++ free/build.sh | 3 +++ free/free.cpp | 7 +++++++ free/readme.md | 10 ++++++++++ 4 files changed, 22 insertions(+) create mode 100644 free/.gitignore create mode 100755 free/build.sh create mode 100644 free/free.cpp create mode 100644 free/readme.md diff --git a/free/.gitignore b/free/.gitignore new file mode 100644 index 0000000..70ffe74 --- /dev/null +++ b/free/.gitignore @@ -0,0 +1,2 @@ +free +*.o diff --git a/free/build.sh b/free/build.sh new file mode 100755 index 0000000..1710f48 --- /dev/null +++ b/free/build.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +g++ -m32 -c -o free.o free.cpp -ffreestanding && ld -m elf_i386 -o free free.o diff --git a/free/free.cpp b/free/free.cpp new file mode 100644 index 0000000..46d6cb2 --- /dev/null +++ b/free/free.cpp @@ -0,0 +1,7 @@ +extern "C" void _start() { + asm volatile ( + "mov $1, %eax\n" + "mov $0, %ebx\n" + "int $0x80" + ); +} \ No newline at end of file diff --git a/free/readme.md b/free/readme.md new file mode 100644 index 0000000..c52c628 --- /dev/null +++ b/free/readme.md @@ -0,0 +1,10 @@ +# freestanding + +```bash +g++ -c -o free.o free.cpp +ld -o free free.o + +objdump -x free + +# g++ -c -nostdlib -o free free.cpp +```