Personal project to lean low-level coding inspired by the book: Low-level programming: C, Assembly and program execution on Intel 64 architecture - by Igor Zhirkov.
The official GitHub of the book can be found here.
Besides these original idea, this project turned into an opportunity to learn more about git, makefile, GNU GDB, GNU GCC and OS principles.
-
Fedora 31 x86_64
-
Linux kernel: 5.8.18-100
-
C compiler: GCC Red Hat 9.3.1-2
-
ASM compiler: NASM 2.14.02
-
Debugger: GNU GDB 8.3.50.20190824-30.fc31
-
Make: GNU MAKE 4.2.1
In the assemblyfiles
directory:
- Compile all the
.asm
files and create thebin/
andbuild/
directories.
make -s
- Compile that specific
.asm
file
make bin/file_name -s
- Clean all the binaries
make clean
- Create GDB setup and commands shortcuts for debugging
make gdb
The -s
flag hides the commands that are executed.
GNU Make manual.
In the cfiles
directory:
All the layout and initial configuration is done by the commands written in ~/.gdbinit
and assemblyfiles/bin/.gdbinit
.
Besides that, all the commands can be found in GNU GDB documentation.
None