Skip to content

Latest commit

 

History

History
68 lines (47 loc) · 1.65 KB

README.md

File metadata and controls

68 lines (47 loc) · 1.65 KB

Low-level programmig

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.

Table of Contents

  1. Environment
  2. Usage
  3. License

Environment

Operating System

  • Fedora 31 x86_64

  • Linux kernel: 5.8.18-100

Programs used

  • 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

Usage

Makefile

1. Assembly

In the assemblyfiles directory:

  • Compile all the .asm files and create the bin/ and build/ 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.


2. C language

In the cfiles directory:

GNU GDB

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.

License

None