Explaining assembly by playing SHENZHEN I/O
Lately, I've been trying out the game SHENZHEN I/O ( https://www.zachtronics.com/shenzhen-io/ ), and have really enjoyed the assembly-like coding-based puzzle solving. So, this video is trying something new: playing a game on stream in order to teach. We played through parts of the game from the beginning, while I explain assembly concepts as we go! The assembly isn't "real", but many of the things you learn relate quite closely to concepts in real-world embedded and assembly programming.
6.828 (now 6.1810): https://pdos.csail.mit.edu/6.828/
0:00:00 Introducing SHENZHEN I/O
0:05:20 The first puzzle
0:07:37 The instruction set
0:20:53 Finishing first puzzle
0:24:57 Second puzzle: handling input
0:29:49 Third puzzle: conditionals
0:44:38 Fourth puzzle: compound signals
1:10:46 Fifth puzzle: discrete output
1:26:03 Sixth puzzle: arithmetic
1:30:20 Seventh puzzle: handling time
1:45:48 Eight puzzle: discrete inputs
2:21:09 Relation to "real" embedded programming
2:32:18 How to actually learn assembly
Live version with chat:
Other Videos By Jon Gjengset
2025-08-01 | Vibe coding complex changes in Rust |
2025-05-30 | Explaining assembly by playing SHENZHEN I/O |
2025-03-10 | Porting the guff plot device to Rust |
2025-01-02 | January 2025 Q&A |
2024-09-21 | Decrusting the quickcheck crate |
2024-08-25 | Implementing a Lox interpreter in Rust |
2024-07-14 | Open Source Maintenance, 2024-07-14 |
2024-05-18 | What's New in Rust 1.72-1.78 Rustacean Station marathon |
2024-05-04 | Q&A May 2024 |
2024-04-05 | Decrusting the tokio crate |
2024-03-09 | Implementing (parts of) git from scratch in Rust |
2024-02-09 | Decrusting the tracing crate |
2024-02-06 | Jon Gjengset Live Stream |
2024-01-14 | Hardware and software [2024 edition] |
2023-12-16 | Q&A December 2023 |
2023-12-15 | Q&A Session |
2023-11-17 | Making the (partial) Rust BitTorrent client more reasonable |
2023-10-19 | Implementing (part of) a BitTorrent client in Rust |
2023-08-26 | Open Source Maintenance, 2023-08-25 |
2023-08-13 | Open Source Maintenance, 2023-08-13 |
2023-08-06 | Open Source Maintenance, 2023-08-06 |