Assembly Languages

Assembly languages are fascinating. We can define them as languages that are close enough to the metal for a processor to execute - distinctly, they are the low-level languages that users don't interact with directly, but that can be composed to form the minimal underpinnings of a system.

They must be resource-aware in some way.

[An introduction to virtual memory - Internal Pointers]

Used

[You Won’t Believe This One Weird CPU Instruction! - Vaibhav Sagar]

[Anatomy of a Binary Executable · Matt Oswalt]

[Keystone – The Ultimate Assembler]: Multi-architecture assembler framework. Wild!

LLVM

[The Architecture of Open Source Applications: LLVM]

[Make LLVM fast again]

Games

[Architecture of Consoles | A Practical Analysis]: Rundown of the architecture of a variety of consoles and how these systems are implemented. Wild!

[XXIIVV — gyo] : A small register machine. [XXIIVV — uxn] is similar.

[Write your Own Virtual Machine : ProgrammingLanguages]

[CHIP-8 in Common Lisp: The CPU / Steve Losh], via [Imran Nazar: GameBoy Emulation in JavaScript: The CPU]

[Lisp CPU]

[famicom-cookbook: A collection of tools and examples for nesdev]

JVM

[Douglas Hawkins — Understanding the Tricks Behind the JIT - YouTube]: How does the JVM mitigate the runtime costs of dynamic features? It "spins up" with them for the most part!

Experiments

[How to write a (toy) JVM]

[GitHub - aalhour/Assembler.hack: 16-bit machine code assembler for the Hack A...]

[Multics Simulator]

[GitHub - vascofazza/8bit-cpu: Schematics & code for my 74LS-based 8-bit MK1 CPU]

[GitHub - michelhe/rustboyadvance-ng: RustBoyAdvance-NG is a Nintendo™ Game Bo...]

[Writing a CHIP-8 emulator with Rust and WebAssembly]

[Excamera] : ??

emulator

[Implementing a NES Emulator in Rust]

[GitHub - mattrberry/crab: A Game Boy, Game Boy Color, and Game Boy Advance em...]

[Statically Recompiling NES Games into Native Executables with LLVM and Go - A...]

Optimization

[The radix 2^51 trick]: Faster addition on modern CPUs.

2022-11-14 cd752c4
2022-11-12 783744d
2022-11-12 89b2ceb
2022-11-03 1aa101d
2022-11-02 999648a
2022-11-01 e3051b8
2022-11-01 36776a0
2022-11-01 58a9b56
2022-11-01 f9984f1
2021-09-22 52a677b
2021-09-21 7732812
2021-08-19 87d9551
2021-01-18 af0b1e0
2021-01-17 675fddc
2021-01-15 f2197ab
2021-01-15 5599273