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
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
Statically Recompiling NES Games into Native Executables with LLVM and Go - Aβ¦
Optimization
The radix 251 trick: Faster addition on modern CPUs.
- public document at doc.anagora.org/assembly
- video call at meet.jit.si/assembly