logoalt Hacker News

flohofwoelast Wednesday at 12:09 PM3 repliesview on HN

IMO It depends a lot on the assembly flavour.

The best ISA for learning is probably the Motorola 68000, followed by some 8-bit CPUs (6502, 6809, Z80), also probably ARM1, although I never had to deal with it. I always thought that x86 assembly is ugly (no matter if Intel or AT&T).

> It quickly becomes tedious to do large programs

IME with modern tooling, assembly coding can be surprisingly productive. For instance I wrote a VSCode extension for 8-bit home computers [1], and dog-fooded a little demo with it [2], and that felt a lot more productive than back in the day with an on-device assembler (or even typing in machine code by numbers).

[1] https://marketplace.visualstudio.com/items?itemName=floooh.v...

[2] https://floooh.github.io/kcide-sample/kc854.html?file=demo.k...


Replies

Lerclast Wednesday at 3:55 PM

Oh nice, I was talking just yesterday how I liked chips as a programming paradigm.

I agree about tooling, I made a pacman game in a dcpu16 emulator in a couple of days.

   https://fingswotidun.com/dcpu16/pac.html
I experimented with a fantasy console idea using an in-browser assembler as well. https://k8.fingswotidun.com/static/ide/

I think you can build environments that give immediate feedback and the ability to do real things quickly in ASM. I would still recommend moving swiftly on to something higher level as soon as it started to feel like a grind.

tsimionesculast Wednesday at 1:50 PM

Sure, but learning an old ISA can leave you with a very very wrong idea about how modern processors work. Even x86 assembly paints a very misleading image of how modern processors actually work. For example, someone learning x86-64 assembly will likely believe all of the following:

- assembly instructions are executed in the order they appear in in the source code

- an x86 processor only has a handful of registers

- writing to a register is an instruction like any other and will take roughly the same time

- the largest registers on an x86 processor are 64-bit

show 3 replies
whobrelast Wednesday at 12:15 PM

I agree that M68k is nice, as are the 8-bit ones you mention. I just find it strange that you like Z80 and dislike x86 - they are fundamentally not that different and both are descended from 8080.

show 1 reply