I made assembly language interactive — a free x86-64 lesson that runs entirely in your browser

작성자

카테고리:

← 피드로
DEV Community · stackframe-hq · 2026-07-21 개발(SW)

stackframe-hq

Assembly has a reputation for being brutally hard to learn. I don’t think the language is the problem — I think the format is. Nearly every assembly tutorial is a static wall of text where you read that xor rax, rax zeroes a register, nod, and retain nothing.

You learn assembly by watching state change. So I built a lesson where everything is executable:

👉 Try it here — no signup, no installs

What’s in it

  • Live steppers for mov, add, sub, and xor — execute one instruction at a time and watch registers and the zero flag change in real time
  • A register anatomy widget — click RAX / EAX / AX / AH / AL and see which bits of the same physical register light up. This is the thing every text tutorial fumbles, and it’s obvious the moment you see it
  • A prediction quiz — read a short program and commit to what rax ends up as before you’re allowed to run it (tracing code in your head is the actual skill)
  • A sandbox with a real mini-assembler — it parses mov / add / sub / xor / inc / dec, decimal or hex immediates, comments, and gives per-line error messages. Three goals get auto-checked as you run
  • A stretch puzzle — get 42 into rax without typing a single number. Registers only. If you solve it, you’ve independently reinvented how compilers multiply by constants

How it’s built

The whole lesson is one HTML file — no framework, no build step, no backend. The “emulator” is a small JavaScript interpreter using BigInt for proper 64-bit register semantics (wraparound behaves correctly — subtract below zero and you get 0xffffffffffffffff, which becomes a teaching moment about two’s complement instead of a bug).

The assembler is ~80 lines: split lines, strip comments, validate mnemonics and operands with friendly per-line errors, then execute against a register-file object. Turns out you don’t need much machinery to make assembly feel alive — you need immediate feedback and a reason to predict before you run.

Why

This is lesson 1 of a course I’m building (flags & branching, the stack, calling conventions, up through reading real compiler output and crackme-style challenges). The free lessons stay free — I’m gauging interest before building the rest.

If you learned assembly the hard way, I’d genuinely like your criticism of the teaching approach. And if you can break the sandbox, tell me how — that’s the fun part.

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다