Skip to content

PedroPizarro/LowLevel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Learn x86_64; C and Linux principles

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published