Welcome to the ASMLab repository, a comprehensive resource for learning and experimenting with x86 assembly programming, ARM GNU assembly programming, and C programming. This repository is designed to serve as a guide and reference for students, hobbyists, and professionals interested in low-level programming and system architecture.
- Introduction
- Repository Structure
- Getting Started
- Prerequisites
- Usage
- Contributing
- License
- Contact
- Watch Live on Twitch
This repository covers three main areas:
- x86 Assembly Programming: Learn how to write assembly code for x86 architecture, understand low-level operations, and interface with hardware directly.
- ARM GNU Assembly Programming: Explore assembly programming for ARM processors using the GNU assembler, focusing on modern ARM architecture.
- C Programming: Understand how to write efficient C code that interacts with low-level hardware components, using both x86 and ARM architectures.
The repository is organized into the following directories:
basics/
: Covers the basics of NASM assembly language, providing a solid foundation for beginners.nasm-c/
: Contains examples, tutorials, and exercises for combining x86 assembly programming (using NASM) with C programming.gnuasm-c/
: Includes resources for ARM GNU assembly programming with a focus on integrating C code.nasm-gnuasm/
: Provides examples and exercises that demonstrate the integration and comparison of x86 NASM and ARM GNU assembly programming.tasks/
: A collection of tasks and challenges designed to test your knowledge and understanding of the topics covered in this repository.
To get started with this repository, clone it to your local machine:
git clone https://github.com/vrstanchevLab/ASMLab.git
cd ASMLab