[HN Gopher] How I stopped worrying and started loving the Assembly
       ___________________________________________________________________
        
       How I stopped worrying and started loving the Assembly
        
       Author : indyjo
       Score  : 172 points
       Date   : 2025-10-23 15:23 UTC (9 days ago)
        
 (HTM) web link (medium.com)
 (TXT) w3m dump (medium.com)
        
       | indyjo wrote:
       | Or why robots are playing DOOM now. What programming for the
       | Atari ST in 2025 has taught me.
        
       | mrasong wrote:
       | I've never worked with assembly before, but I learned a lot from
       | this article.
        
         | iberator wrote:
         | I never programmed assembly before 2025. For some reason i
         | started tinkering with emulated 6502 cpu (same as in apple 2)
         | and its FUN. In matters of weeks I managed to develop my own
         | cpu architecture b, opcodes, wrote VM and assembler for it.
         | 
         | Bare metal programming with those old CPUs is WAY easier than
         | learning new web stack IMO.
        
       | brabel wrote:
       | Amazing work. I am the same age as the author and also would love
       | to tinker with old hardware. This article taught me that I can do
       | that with emulators all the while using modern developer tools!
       | That's very motivating, will see if I can get started. My first
       | computer was a PC XT 386 IIRC, maybe I can do the same kind of
       | thing on that.
        
         | Drakim wrote:
         | Emulators are wonderful, I got into assembly for the 6502
         | processor used in the NES (Nintendo Entertainment System) and
         | it's been an absolute blast, there is something so inherently
         | satisfying and almost zen-like in it.
        
       | Agingcoder wrote:
       | Comanche ( or at least an approximation of it ) on an Atari ST -
       | that's quite a feat!
        
       | jebarker wrote:
       | Great work - needed to read this today to pull me out of a state
       | of modern software engineering induced malaise.
        
       | MomsAVoxell wrote:
       | I have been continuously hacking on my first computer, received
       | in a delicate cross-Nullabor operation in 1983, the lovely little
       | Oric-1. It's a 6502 'also-ran' victim of the 80's 8-bit computing
       | war, but is still .. fascinatingly .. actively hosting new
       | software, even today.
       | 
       | The retro scene is alive and well, and in many small ways,
       | flourishing. Even the obscure platforms get new device
       | peripherals designed for them - among other things in my retro
       | corner, I have a remote controllable Amstrad CPC6128 with an M4
       | card, putting it on a network .. a couple of ZX Spectrum variants
       | with so much storage attached, the 'why not just put every single
       | spectrum game on it, ever' question just hangs in the ether ..
       | and an original C64 and Commodore monitor rig, sitting at one end
       | of the city waiting for a LoRa/meshtastic session, to set it up,
       | so we can chat with the other Oric/ZX Spectrum/Amstrad/etc.
       | systems all over the place.
       | 
       | Anyway, I just want to point out, there is a very thriving retro
       | scene, so learning assembly and participating in it, in your own
       | way, is a very stimulating hobby. Even if you are a master of all
       | the current tooling, learning the tools of the ancients will make
       | you appreciate just how much bloat we tolerate, needlessly.
       | 
       | In any case, its often surprising where 6502/z80-like systems
       | turn up these days, too ..
        
       | dingi wrote:
       | Honestly, Assembly is great. It's the most closer-to-the-metal,
       | no-nonsense, raw experience you can get. The problem is that
       | means it's also tedious and error-prone to write, but the elegant
       | simplicity of the abstraction is still there.
        
       | nickcw wrote:
       | I had an Atari 1040 ST and I used to love programming it in 68000
       | assembler mostly using K-Seka. It really felt like programming a
       | 32 bit CPU which was amazing after the 8 bit world that preceeded
       | it. The instruction set was very orthogonal (other than the
       | slightly odd split between A registers and D registers). When I
       | graduated from 68000 assembly to ARM assembly it felt like a
       | natural progression.
       | 
       | Probably my best project was a FORTH system. It used direct
       | threading so each FORTH word was a proper assembly routine. It
       | had primitive peephole optimization too! It was all written in
       | 68000 assembler with K-Seka.
       | 
       | So if you want an assembler to learn, 68000 is a great choice.
       | However you could learn 32 bit ARM which I came to prefer and
       | that will still run on modern systems (at least if they have been
       | compiled with 32 bit support or on the plentiful ARM
       | microcontrollers).
        
       | davedx wrote:
       | Am I the only one who won't click on links to something on
       | medium.com?
        
         | anthk wrote:
         | Replace medium.com with scribe.rip in the URL
        
       | fithisux wrote:
       | It is a very encouraging message.
        
       | endorphine wrote:
       | Where would you suggest someone starts if they want to get into
       | this stuff? Start writing an emulator? Which one would you
       | recommend?
        
         | anthk wrote:
         | A chip8 emulator
        
         | rramadass wrote:
         | _Low-Level Programming: C, Assembly, and Program Execution on
         | Intel x86-64 Architecture_ by Igor Zhirkov.
        
         | petee wrote:
         | I found playing with AVR microcontrollers to be a nice intro to
         | assembly, and it can be quite rewarding to get some physical
         | response from your code, like a display or turning a servo. I
         | did already have some electronics experience going in though
        
       | le-mark wrote:
       | This article is less about assembly programming and more a tour
       | de force on retro game development for the Atari ST. The author
       | talks about using inline assembler to optimize gfx and game
       | rendering inner loops. Oh and the author ported Doom to the Atari
       | ST.
       | 
       | Some people are drawn to assembly and that's great. Me
       | personally, after a course in undergrad studying MIPS assembly, I
       | learned to appreciate what all the compiler does for us and moved
       | on!
        
         | cogman10 wrote:
         | I've always had a deep interest for it, but the more I learn
         | about what and how compilers can do stuff, the more I'm like
         | "Ok, better just let the compiler handle it".
         | 
         | It's truly wild how much a modern compiler can transform code.
         | There are circumstances where a human can do better (mostly
         | around SIMD optimizations) but those require you to be in
         | situations where you doing operations on large arrays of
         | numbers. Not extremely common in most programming (beyond maybe
         | making totals. Which is a SIMD operation that compilers do
         | well).
        
         | xgkickt wrote:
         | For me MIPS is the best ISA for "stream of consciousness"
         | assembly, you can just write it then tidy up the register usage
         | and pipelining after.
        
       | shevy-java wrote:
       | I want to like it but my brain is too feeble for it.
       | 
       | I will wait for when efficiency (as well as speed) comes from
       | elegance in the programming language itself rather than the human
       | mind having to cater to some fundamental archaic syntax.
        
         | MSFT_Edging wrote:
         | The thing about assembly is, in a limited context it's not that
         | hard to understand at all.
         | 
         | Value goes into register, do some math on register, compare
         | register to immediate, etc.
         | 
         | The difficulty comes the more code you add. The same thing
         | happens in nearly any language. A single file python script is
         | easy, the complexity in a mature async python app is hard. It's
         | easy to add some numbers and val >> stout in c++, but managing
         | all the dependencies and build chain is hard in a million line
         | program.
         | 
         | It's no different, but assembly is neat because you can isolate
         | the complexity via inlining and just step back and tell the
         | computer exactly what to do.
        
         | t-3 wrote:
         | Assembly is often _easier_ than using programming languages, it
         | 's just less convenient most of the time. x86 will make you
         | think you're too stupid to understand because it is a
         | disgusting malformed monster. Assembly on other architectures
         | make the computer feel like a machine rather than a magic box.
        
       | ngcc_hk wrote:
       | Still enjoying this assembly
       | 
       | https://news.ycombinator.com/item?id=45646958
       | 
       | I guess it would be nice to have a more entry level piece not
       | just a more advanced stuff and a story. Still nice. But not that
       | involved and getting into IT is more than involvement and
       | interaction.
        
       | whobre wrote:
       | Wonderful article! Programming 68000 assembly is a joy. People
       | are quick to dismiss CISC instruction sets because they mostly
       | encounter x64 with its baggage of legacy, but 68k is something
       | else.
        
         | michaelcampbell wrote:
         | I remember reading Lance Levanthal's 68000 book and doing some
         | toy exercises as my first kind of non-uni assy experience; then
         | when I got to college some IBM 360. When I finally saw x86, omg
         | what a nightmare.
        
       | JKCalhoun wrote:
       | Ben Eater delves into 6502 assembly with regard to his bread-
       | board 6502 computer. I recommend anyone interested in assembly do
       | a search (on YouTube) for his series.
       | 
       | I got one of his kits and assembled it while working through his
       | YouTube series.
       | 
       | (I didn't, at the time, continue very far into the assembly
       | course, but perhaps will this Winter when I am hunkered down in
       | the Midwaste with the blizzards beating down on my home.)
        
       | JKCalhoun wrote:
       | Tangentially related. I want to play around with Web Assembly
       | just to try to speed up (or perhaps parallelize) my own
       | implementation of the "ray casting" "voxel" algorithm that the
       | author demonstrates from the old Comanche game.
       | 
       | My straight Javascript implementation:
       | https://github.com/EngineersNeedArt/Mooncraft2000
        
       ___________________________________________________________________
       (page generated 2025-11-01 23:00 UTC)