mirror of
https://github.com/lowlevellearning/rosetta-stone.git
synced 2025-09-20 09:45:03 -04:00
59 lines
1.4 KiB
Markdown
59 lines
1.4 KiB
Markdown
# 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.
|
|
|
|
## 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
|
|
```
|
|
2. **Install necessary packages**: Install the necessary packages on your system by running the following command:
|
|
```
|
|
./setup.sh
|
|
```
|
|
3. **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 []
|
|
|
|
|
|
|
|
|
|
|
|
|