Initial commit

This commit is contained in:
Fabio Scotto di Santolo
2025-07-02 12:43:08 +02:00
commit 332c858f02
2 changed files with 92 additions and 0 deletions

67
README.md Executable file
View File

@@ -0,0 +1,67 @@
# 🧠 Assembly x86 Examples (32-bit) - Intel Syntax
This repository contains a collection of simple **x86 32-bit assembly examples**, written using **Intel syntax**. These examples are meant to help you learn and experiment with low-level programming concepts on the x86 architecture.
## 🛠 Toolchain Used
- **Assembler:** [NASM (Netwide Assembler)](https://www.nasm.us/)
- **Linker:** `ld` (GNU Linker)
- **Target OS:** Linux (x86)
## ▶️ How to Compile and Run
Make sure you have `nasm` and `ld` installed. On Debian/Ubuntu:
```bash
sudo apt update
sudo apt install nasm
```
### Compile
```bash
nasm -f elf32 file.asm -o file.o
ld -m elf_i386 file.o -o file
```
### Run
```bash
./file
```
### Full Example
```bash
nasm -f elf32 hello_world.asm -o hello_world.o
ld -m elf_i386 hello_world.o -o hello_world
./hello_world
```
## 📚 Intel Syntax
All source files use **Intel syntax**, where the **destination operand comes first**. For example:
```asm
mov eax, 1 ; Load 1 into eax
mov ebx, eax ; Copy eax into ebx
mov ecx, [ebx] ; Load into ecx the value at memory address stored in ebx
```
## 🧩 Requirements
- 32-bit architecture or compatibility with `elf32`
- Linux or a compatible environment with `nasm` + `ld`
- Optional: QEMU or Docker for emulation on pure 64-bit systems
## 📝 License
This project is licensed under the **MIT License**. Feel free to study, modify, and reuse the code.
## 🤝 Contributing
Contributions, improvements, or new demos are welcome! Open an issue or a pull request 🚀
---
> Made with ❤️ for low-level enthusiasts.