Welcome to My Lab
I’m Cha Seojun (차서준), a systems programmer, reverse engineer, and hacker.
This is my digital lab where I document how computers really work—from transistor-level logic to modern operating systems.
What you’ll find here
- Low-level programming – ARM assembly, memory, registers, and system calls
- Linux internals – kernel, syscall tracing, ELF analysis, debugging
- Compiler & Toolchain building – writing a C compiler, building an assembler
- Hardware emulation – QEMU, memory-mapped I/O, CPU design with Verilog
- Real projects – not tutorials, but real engineering journeys
If you’re curious about what’s under the hood of your computer — and want to build or break it yourself — you’re in the right place.
Get in touch or follow my work on GitHub.
-
Basics of Process Memory Layout and Virtual Addressing
-
How Does the CMP Instruction Work in ARM Assembly?
-
ARM Assembly #15 - Conditional Execution Using CPSR and Condition Flags
-
ARM Assembly #14 - Using the BL Instruction That Automatically Saves the Return Address
-
ARM Assembly #13 - Branching Execution Flow with the B Instruction
-
ARM Assembly #12 - Stack Memory and Addressing Modes
-
ARM Assembly #11 - Memory Block Access(LDM, STM)
-
ARM Assembly #10 - Understanding Stack Memory in ARM
-
ARM Assembly #9 - Memory Access with Automatic Address Calculation using pre-index and post-index
-
ARM Assembly #8 - Calculating Memory Addresses with Offsets
-
ARM Assembly #7 - The Simplest Way to Access Memory with LDR and STR
-
ARM Assembly #6 - Arithmetic Operations
-
Binary Representation: Signed vs Unsigned
-
ARM Assembly #5 - A Complete Guide to Shifter Operands
-
ARM Assembly #4 - How to Rotate Bits with ROR and RRX
-
Understanding Carry in Arithmetic
-
ARM Assembly #3 - Arithmetic Shift (ASR) and Sign Preservation
-
ARM Assembly #2 - Understanding Logical Shifts (LSL, LSR)
-
ARM Assembly #1 - Storing Values in Registers (MOV)
-
ARM Assembly #0 - Build Environment and First Code
-
What is Low-Level Programming?