Skip to content

About

A growing archive of Computer Organization and Assembly Language (COAL) coursework: assembly programs, lab tasks and practice exercises, with visual references and a cheat sheet.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

Repository files navigation


Animated terminal typing a short, illustrative assembly snippet

Assembly Lab Vault is an organized collection of Computer Organization and Assembly Language (COAL) coursework: assembly source files, lab tasks, and practice exercises. New work is added here as the course continues.

Three cards: source code, visual references and a cheat sheet

Browse the Labs

Every lab lives in this repository's file list. Open it, click a file, and the source code appears.

Open the file list Cheat sheet

Tip: on the repository page, press T to search for any file by name.

Note

This page lists no individual labs, so new labs appear in the file list automatically. Nothing here needs editing when you add one.

Repository Map

flowchart LR
    R[("Assembly-Lab-Vault")] --> L["Lab source files<br/>*.asm"]
    R --> P["Project files<br/>.sln, .vcxproj"]
    R --> A["assets/<br/>README visuals"]
    R --> D["docs/<br/>cheat sheet"]
    L --> N["More labs added over time"]

    classDef root fill:#0b1220,stroke:#22d3ee,color:#e2e8f0
    classDef src fill:#0b1220,stroke:#a78bfa,color:#e2e8f0
    classDef aux fill:#0b1220,stroke:#34d399,color:#e2e8f0
    class R root
    class L,N,P src
    class A,D aux
Loading

Concepts

Registers Memory addressing Arithmetic Control flow Arrays Procedures Stack Input and output

Typical COAL topics. This list describes the course in general, not any single lab.

Under the Hood

General reference diagrams for the ideas behind the labs. For instructions, addressing modes and flags, see the cheat sheet.

Inside the CPU

Diagram of the 32-bit x86 registers, showing how EAX splits into AX, AH and AL, plus the other registers and common flags



Diagram of the instruction cycle: fetch, decode, execute, store, then repeat

Memory and the buses

Diagram of the CPU, memory and I/O connected by address, data and control buses



Diagram of typical program memory from low to high address: code, data, heap, free space, stack



Animation of values being pushed onto and popped off the stack while ESP moves

Numbers

The numbers 0 to 15 in decimal, hexadecimal and binary, with a highlight stepping through them

Typical build flow
flowchart LR
    S["source.asm"] --> AS["Assembler"]
    AS --> O["Object file"]
    O --> LK["Linker<br/>+ any libraries"]
    LK --> E["Executable"]
Loading

How to Use

Find and open a lab
  1. Open the file list and click an .asm file.
  2. To save it, click Raw or the download icon at the top right of the file view.
  3. To get everything, use Code → Download ZIP on the repository page, or git clone.
Run the code
  • An .asm file needs an assembler and a linker to become a program. Which ones depend on your course setup.
  • A lone .asm file usually runs only inside a configured project. If a lab calls helper routines from an external library, that library must be installed and linked separately; it is not part of the file.
  • If a lab comes with .sln and .vcxproj files, open the .sln file in Visual Studio.
  • Comments at the top of a source file may describe its requirements.

Terminal line typing a git command
Coursework archive · COAL · maintained by SumaiyaAbubakar

About

A growing archive of Computer Organization and Assembly Language (COAL) coursework: assembly programs, lab tasks and practice exercises, with visual references and a cheat sheet.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages