Skip to content

C/C++ and NASM x86 compatable assembly language educational materials

License

Notifications You must be signed in to change notification settings

vrstanchevLab/ASMLab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASMLab

GitHub license GitHub stars GitHub forks Open Source Assembly C Twitch

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.

Table of Contents

Introduction

This repository covers three main areas:

  1. x86 Assembly Programming: Learn how to write assembly code for x86 architecture, understand low-level operations, and interface with hardware directly.
  2. ARM GNU Assembly Programming: Explore assembly programming for ARM processors using the GNU assembler, focusing on modern ARM architecture.
  3. C Programming: Understand how to write efficient C code that interacts with low-level hardware components, using both x86 and ARM architectures.

Repository Structure

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.

Getting Started

To get started with this repository, clone it to your local machine:

git clone https://github.com/vrstanchevLab/ASMLab.git
cd ASMLab