Skip to content

RasyaAndrean/Assembly-Code-Examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Assembly Language Documentation Project

This is an educational project providing structured Assembly language programming examples from basic to advanced levels. It covers core topics such as arithmetic, memory management, system calls, threading, floating-point operations, and optimization. The goal is to teach low-level programming concepts and best practices through practical examples.

Project Overview

The Assembly Language Documentation Project is a comprehensive educational resource designed to help learners understand and master assembly language programming. The project contains a wide variety of examples organized by technical domain rather than difficulty level, making it easier to find relevant examples for specific areas of interest.

This project was created by Rasya Andrean as an educational resource to help people learn assembly language programming through practical examples and comprehensive documentation.

Directory Structure

  • code-examples/ - All assembly code examples organized by category
  • docs/ - All documentation, guides, and reference materials
  • LICENSE - Project license information
  • AUTHORS - List of contributors and project creators

Code Examples Structure

The code examples are organized into specialized directories based on technical focus:

  • basic/ - Fundamental Assembly programs (4 examples)
  • intermediate/ - More complex constructs (3 examples)
  • system-programming/ - System-level programming concepts (12 examples)
  • embedded/ - Embedded systems programming (4 examples)
  • performance/ - Performance optimization techniques (5 examples)
  • debugging/ - Debugging and testing methodologies (3 examples)
  • security/ - Security-focused examples (2 examples)
  • hardware/ - Direct hardware interfacing (2 examples)
  • networking/ - Network programming examples (1 example)
  • applications/ - Complete applications (8 examples)
  • algorithms/ - Algorithm implementations (3 examples)
  • utils/ - Utility files and macros (4 files)

Documentation Structure

All documentation is organized in the docs/ directory:

  • guides/ - Comprehensive guides and best practices
  • references/ - Reference materials and cheat sheets
  • tutorials/ - Step-by-step learning materials
  • reports/ - Project development and completion reports

Prerequisites

To use the examples in this project, you'll need:

  • NASM assembler
  • A linker (ld on Linux, MinGW ld on Windows)
  • Basic understanding of computer architecture

How to Compile and Run

Using Makefile (Recommended)

# Navigate to the code-examples directory
cd code-examples

# Build all examples
make all

# Build specific categories
make basic
make intermediate
make system-programming
make embedded
# ... and so on for other categories

# Clean compiled files
make clean

# Get help
make help

Manual Compilation

For Linux:

# Assemble (example)
nasm -f elf64 code-examples/basic/hello_world.asm -o hello_world.o

# Link
ld hello_world.o -o hello_world

# Run
./hello_world

For Windows:

REM Assemble (example)
nasm -f win64 code-examples/basic/hello_world.asm -o hello_world.obj

REM Link
ld hello_world.obj -o hello_world.exe

REM Run
hello_world.exe

Learning Path

  1. Start with the basic examples to understand fundamental concepts
  2. Move to intermediate examples to learn about loops, arrays, and more complex data structures
  3. Explore specialized categories based on your interests:
    • system-programming for OS-level concepts
    • embedded for microcontroller programming
    • performance for optimization techniques
    • security for cryptographic operations
    • hardware for device interfacing
    • applications for complete programs
  4. Use the utils directory for helpful macros and utilities

Contributing

We welcome contributions to this educational project! Feel free to:

  • Add new examples
  • Improve existing code
  • Fix bugs
  • Enhance documentation
  • Suggest new topics or categories

Please open an issue or submit a pull request with your contributions.

Authors and Contributors

See the AUTHORS file for a list of contributors to this project.

License

This project is licensed under the MIT License - see the LICENSE file for details.

The code is provided for educational purposes and is free to use and modify.

About

This repository contains a collection of assembly language examples organized by difficulty level to help you learn assembly programming progressively.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors