aboutsummaryrefslogtreecommitdiff
path: root/docs/README.md
blob: c36bd26169e4c7607f5f4619bb77576b93d41852 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 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/).