The Unexpected Effectiveness of One-Shot Decompilation with Claude
Using Claude AI to accelerate decompilation of N64 games by automating the conversion of assembly code into human-readable C.
Using Claude AI to accelerate decompilation of N64 games by automating the conversion of assembly code into human-readable C.
A developer recreates Minesweeper from scratch using X11 and C, resulting in a tiny, statically linked executable as a critique of modern bloat.
A guide to using embedded resources in .NET applications, covering how to include and access files like images and localization data within assemblies.
A developer revisits an Advent of Code puzzle, optimizing the solution with a new algorithm and implementing it in x86_64 assembly for performance.
A technical exploration of bootloader programming, building up to creating a simple text editor and a Snake game in assembly.
An analysis of the world's fastest FizzBuzz implementation, written in Assembler and optimized for AVX2, achieving 56 GB/s output.
A guide to debugging programs written in a new compiled programming language, covering techniques from print statements to using gdb without debug symbols.
A guide to building the hsdis disassembler library for OpenJDK 15 to analyze JIT compiler assembly output.
A guide to building the hsdis disassembler library for OpenJDK 15 to analyze JIT compiler assembly output.
A follow-up analysis on programming language complexity and abstraction, using 'Hello World' program comparisons to critique modern software bloat.
Analyzes the system calls and binary size of a simple "hello world" program across multiple programming languages, from assembly to Python.
Explains the technical reasons behind the change to objc_msgSend's function prototype in Apple's Objective-C runtime.
Extending a JavaScript x86 emulator to implement Linux system calls like exit and write, covering syscall mechanics and AMD64 conventions.
Extending a Lisp compiler's LLVM backend to support system calls for printing integers, covering type tracking and variable addressing.
A technical guide on building a basic x86 emulator in JavaScript, covering registers, stack memory, and core instruction implementation.
Extending a Lisp compiler in JavaScript to support user-defined functions and variables, focusing on assembly code generation.
A technical guide to building a basic Lisp compiler in JavaScript, covering parsing, code generation, and assembly output.
Introducing the Disassembly Diagnoser for BenchmarkDotNet, a tool to disassemble .NET code to ASM, IL, and C# for performance analysis.
A deep technical dive into the ARM64 assembly implementation of Objective-C's core message-sending function, objc_msgSend.
The author argues that using intrinsics for high-performance code is unreliable and more work than writing assembly by hand.