Skip to content

Latest commit

 

History

History
64 lines (52 loc) · 4.8 KB

README.md

File metadata and controls

64 lines (52 loc) · 4.8 KB

Introduction to Assembly

drawing

This repository is intended to provide a path to learning the Assembly. The motivation is to provide a solid idea of the language so that the reader knows which path to take in a career as a Assembly Developer.

The entire repository is based on the book: Guide to Assembly Language Programming in Linux - Sivarama P. Dandamudi - (2005)

The repository has an identical structure to the book. The code is included and linked for easy access and execution. Some paragraphs in the book may be without direct quotes. I would be grateful if you would open a pull request to correct inaccuracies and contribute to the repository.

The repository is targeted for software professionals who would like to move to Linux and get a comprehensive introduction to the IA-32 assembly language. It provides detailed, step-by-step instructions to install Linux as the second operating system.


No previous knowledge of Linux is required. The reader is introduced to Linux and its commands. Four chapters are dedicated to Linux and NASM assembler (installation and usage). The assembly language is presented from the professional viewpoint. Since most professionals are full-time employees, the repository takes their time constraints into consideration in presenting the material.

Part I - Overview

Part II - Computer Organization

  • Digital Logic Circuits
  • Memory Organization
    • Introdcution
    • Basic Memory Operations
    • Types os Memory
    • Building a Memory Block
    • Building Larger Memories
    • Mapping Memory
    • Storing Multibyte Data
    • Alignment of Data
    • Summary
  • The IA-32 Architecture
    • Introduction
    • Processor Execution Cycle
    • Processor Registers
    • Protected Mode Memory Architecture
    • Real Mode Memory Architecture
    • Mixed-Mode Operation
    • Which Segment Register to Use
    • Input/Output
    • Summary