Learning Assembly (The ASM Rosetta Stone)

This respository contains the ASM Rosetta Stone, a small snippet of C that you can use to learn a new assembly variant in a short amount of time.

What's gonna be new?

Hopefully we'll extend it in some parts to be more educational.

Getting Started

To get started with studying assembly languages using Rosetta Stone, follow these steps:

  1. Clone the repository: Open a terminal and run the following command to clone the repository to your local machine:
git clone https://github.com/lowlevellearning/rosetta-stone.git
  1. Install necessary packages: Install the necessary packages on your system by running the following command:
./setup.sh
  1. Makefile usage: You can use the Makefile to compile the rosetta.c file into executables for different architectures. Run the following command to compile the code for all supported architectures (powerpc, arm, aarch64):
make all

Alternatively, you can compile the code for individual architectures using the respective target names:

  • PowerPC:
make powerpc
  • ARM
make arm
  • AArch64
make aarch64

The compiled executables will be named ppc (for powerpc), arm (for arm), and aarch64 (for aarch64).

Checklist

  • registers
    • names []
    • width []
  • stack memory
    • how is it used []
    • prolouge, epilouge []
  • calling conventions
    • arguments []
    • return value []
    • return address []
  • control flow
    • branching []
    • conditional branches[]
    • calls []
  • syscall interface []