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](https://www.internalpointers.com/post/introduction-virtual-memory) # Used [You Won’t Believe This One Weird CPU Instruction! - Vaibhav Sagar](https://vaibhavsagar.com/blog/2019/09/08/popcount/) [Anatomy of a Binary Executable · Matt Oswalt](https://oswalt.dev/2020/11/anatomy-of-a-binary-executable/) [Keystone – The Ultimate Assembler](https://www.keystone-engine.org/): Multi-architecture assembler framework. Wild! ## LLVM - [The Architecture of Open Source Applications: LLVM](http://www.aosabook.org/en/llvm.html) - [Make LLVM fast again](https://www.npopov.com/2020/05/10/Make-LLVM-fast-again.html) ## Games [Architecture of Consoles \| A Practical Analysis](https://www.copetti.org/writings/consoles/): Rundown of the architecture of a variety of consoles and how these systems are implemented. Wild! [XXIIVV — gyo](https://wiki.xxiivv.com/site/gyo.html): A small register machine. [XXIIVV — uxn](https://wiki.xxiivv.com/site/uxn.html) is similar. [Write your Own Virtual Machine : ProgrammingLanguages](https://www.reddit.com/r/ProgrammingLanguages/comments/deuqx3/write_your_own_virtual_machine/) [CHIP-8 in Common Lisp: The CPU / Steve Losh](https://stevelosh.com/blog/2016/12/chip8-cpu/), via [Imran Nazar: GameBoy Emulation in JavaScript: The CPU](http://imrannazar.com/GameBoy-Emulation-in-JavaScript) [Lisp CPU](https://frank-buss.de/lispcpu/) [famicom-cookbook: A collection of tools and examples for nesdev](https://sr.ht/~rabbits/famicom-cookbook/) ## JVM [Douglas Hawkins — Understanding the Tricks Behind the JIT - YouTube](https://www.youtube.com/watch?v=oH4_unx8eJQ): 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](https://zserge.com/posts/jvm/) [GitHub - aalhour/Assembler.hack: 16-bit machine code assembler for the Hack A…](https://github.com/aalhour/Assembler.hack) [Multics Simulator](https://www.multicians.org/simulator.html) [GitHub - vascofazza/8bit-cpu: Schematics & code for my 74LS-based 8-bit MK1 CPU](https://github.com/vascofazza/8bit-cpu) [GitHub - michelhe/rustboyadvance-ng: RustBoyAdvance-NG is a Nintendo™ Game Bo…](https://github.com/michelhe/rustboyadvance-ng) [Writing a CHIP-8 emulator with Rust and WebAssembly](https://blog.scottlogic.com/2017/12/13/chip8-emulator-webassembly-rust.html) [Excamera](https://www.excamera.com/sphinx/index.html): ?? # emulator [Statically Recompiling NES Games into Native Executables with LLVM and Go - A…](https://andrewkelley.me/post/jamulator.html) # Optimization [The radix 251 trick](https://www.chosenplaintext.ca/articles/radix-2-51-trick.html): Faster addition on modern CPUs.