4 ms·
The topic of the 6502 ISA simplicity is a pet peeve of mine, because to me it's clear that anybody thinking that such simplicity is a good thing, never progress
by pizza234 2y ago
The topic of the 6502 ISA simplicity is a pet peeve of mine, because to me it's clear that anybody thinking that such simplicity is a good thing, never progressed past a hello world.
Programming anything of moderate complexity on the 6502 is hard. 8 bits are way too restrictive (e.g. screen addressing on the Commodore 64). Multiplications/divisions need to be hand-rolled. And even 16 bit sums/subtractions are simple but still not trivial to perform efficiently.
The 8086+DOS platform is way easier to work on, in comparison (if one wants to learn basic assembly).
- apricot 2y ago> Multiplications/divisions need to be hand-rolled. In the context of someone's first contact with assembly language, that's a good thing! Translating various multiplication and division algorithms to assembly is a great way to learn it.
- kccqzy 2y agoI learned to implement my own multiplication and division as part of learning bignum with a high level language (in my case Pascal). By the time I learned assembly language I simply focused on how to translate high level language to assembler; basically be a manual compiler and compare my output against a real compiler. It seems unnecessary to learn any algorithm including the multiplication algorithm in assembly language.
- apricot 2y agoImplementing shift-and-add multiplication and division algorithms in assembly, and analyzing them, is a very formative exercise in my experience. Besides, if assembly language is good enough for Knuth to express all the algorithms in TAOCP, it's good enough for me...
- PaulHoule 2y agoI probably wrote more 8086 (really 80286 in real mode) assembly than any other assembly. I loved every minute of it, I didn't even mind the segment registers.
- wvenable 2y agoThe restictiveness is part of the fun. 8086 assembly isn't as much fun. If you're already going for something irrelevant (not x86-64 or RISC-V or ARM) then I don't see the advantage of 8086.