Turbo Pascal 3.02A, deconstructed
An interactive deconstruction of the 1985 Turbo Pascal 3.02A binary, using AI to decompile and annotate the classic compiler's assembly code.
An interactive deconstruction of the 1985 Turbo Pascal 3.02A binary, using AI to decompile and annotate the classic compiler's assembly code.
An interactive deconstruction of the 1985 Turbo Pascal 3.02A binary, using AI to decompile and annotate the classic compiler's assembly code.
Introducing Knuckledragger, a Python tool for refinement modeling and verification of RISC-V assembly code using symbolic execution.
Using Claude AI to accelerate decompilation of N64 games by automating the conversion of assembly code into human-readable C.
Introducing a mutation testing framework for Go assembly to improve test coverage of constant-time cryptographic code and prevent hidden bugs.
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.