; various UNIX projects written in assembly language
; of course all of them feature extremely small size
; if you're looking for source code and examples, here they are
name | short description | platform | OS | assembler |
asmutils | miscellaneous utilities, small libc | IA32 | Linux, *BSD (Unixware, Solaris, AtheOS, BeOS) | nasm |
e3editor | WordStar-like text editor | IA32 | Linux, *BSD, AtheOS, BeOS, Win32 | nasm |
ec64 | Commodore C64 emulator | IA32 | Linux | nasm |
lib4th | Forth kernel implemented as shared library | IA32 | Linux | nasm |
Tiny Programs | tiny Linux executables | IA32 | Linux | nasm |
ta | traffic accounting daemon | IA32 | Linux | nasm |
dream | R4RS compliant Scheme interpreter | IA32, PPC | Unix | gas |
H3sm | 3-stack Forth-like language (and other stuff from Rick Hohensee) |
IA32 | Linux | gas |
F4 | x86 Linux fig-Forth | IA32 | Linux | gas |
eforth | eforth converted to nasm/asmutils | IA32 | Linux | nasm |
eforth | original Linux eforth | IA32 | Linux | gas |
ASMIX | several command-line utilities | IA32, PPC, SPARC, PDP11 | Linux, FreeBSD, LynxOS, Solaris, Unixware, SunOS | gas |
Bizarre Source, Corp | several system utilities | IA32 | Linux | gas |
VMW Assembly tricks | linux_logo and other ASCII tricks in assembly | IA32, IA64, Alpha, PPC, SPARC, S390 | Linux | gas |
acid | small textmode intro | IA32, ARM | Linux | nasm, gas |
asm-toys | few utilities | IA32 | Linux | gas |
smallutils | few small utils in assembly and C | IA32, SPARC | Linux | gas |
There are quite a lot of mixed C-assembly projects, like GNU MP library, ATLAS/BLAS, OpenGUI just to name a few. Also see source code of your kernel and libc. All this will provide you examples of assembly programming on different hardware platforms.
; Various documents on the topic
; Some of them are must-reads
; CPU manuals and assembly programming guides
IA-32 (x86): | sandpile.org, Intel, AMD, x86 bugs, optimization |
x86-64: | |
IA-64: | Intel Itanium manuals, IA-64 Linux |
ARM: | ARM Assembler Programming |
Alpha: | Compaq Tru64 UNIX 5.1, other manuals, |
SPARC: | |
PA-RISC: | PA-RISC technical documentation |
PPC: | Introduction to assembly on the PowerPC |
MIPS: |
; Executable formats
; Books
; Articles
; If you're new to UNIX assembly programming, start from here
; Links to somehow related projects
; tools
NASM | x86 assembler with Intel syntax |
FASM | another x86 assembler with Intel syntax |
ALD | Assembly Language Debugger |
BASTARD | Bastard Disassembly Environment |
DUDE | Despotic Unix Debugging Engine |
BIEW | console hex viewer/editor with built-in disassembler |
HTE | viewer/editor/analyzer for text, binary, and executable files |
OTCCELF | tiny C compiler, generates a dynamically linked ELF file |
UPX | Ultimate Packer for eXecutables |
Intel2gas | converter between AT&T and Intel assembler syntax |
A2I | converter from AT&T to Intel assembler syntax |
TA2AS | converter from TASM to AT&T assembler syntax |
binutils | as they are: gas, ld, ar, etc |
; sites
Jan's Linux & Assembler page | various source code examples |
H-Peter Recktenwald's page | "The Int80h page" |
Karsten Scheibler's page | "Unused Inode" |
G. Adam Stanislav's page | FreeBSD related material |
Bruce Ediger's page | SPARC assembly related material |
Assembly Programming Journal | |
Phrack Magazine | |
intel-assembler.it | Numerous Intel assembly programming resources for mostly DOS and Windows. |
; discussion forums
FASM Linux/Unix forums | (english) |