# hdass documentation hdass is a small superset of assembly: you keep registers, memory and explicit control flow, and write the repetitive parts (moves, arithmetic, loops, branches) more compactly. It transpiles to x86-64 (NASM or fasm) or AArch64 (GNU as). - [Getting started](getting-started.md) — build the compiler, then write and run a first program on both x86-64 and AArch64. - [Language reference](language.md) — the full syntax: declarations, statements, control flow, memory, floating point, raw instructions and extensions. - [Targets](targets.md) — the architecture and assembler axes, what each target supports, the portable register model, and the per-architecture syscall ABIs. - [Internals](internals.md) — the `lex → parse → analyze → emit` pipeline and how to add a new assembler backend or architecture. Working programs live in [examples/](../examples/) (x86-64) and [examples/arm64/](../examples/arm64/).