Hacker News new | past | comments | ask | show | jobs | submit login

I learned 6502 assembly as my second programming language after BASIC. I don't remember how I felt about it, because it was all I had, but I do remember two things:

1. 6502 assembly made a lot of sense to me, even its quirks kind of made sense

2. When I switched to the 80386 nothing made sense and I simply hated it.

I think it is fair to say that if I had to start with x86 I probably would have never gotten into programming.




Same here, Atari 400.

I did get to see some 6809 and 68000 assembly around the time of seeing x86 (and before I wrote any) that I accepted it--but still disliked it. Don't know what I disliked more: direction flag, all registers are special, segments.

The weird instruction/register usage is likely one reason why x86 was faster/cheaper than programmer-friendly processors like M68k--which also made the 6502 a success.


I learned 8080/8085 assembly before looking at x86, and while I can figure out x86 well enough it's still a mess! I don't know that prior experience necessarily makes x86 look any less ugly :P


I agree with both of those points.

I learned 6502 and 68000 assembly language. Then I bought an 80286 assembly language book, started reading it, become disgusted, and returned the book to the store.


So very true. I think basically x86 architecture was meant to be compiled from C, not assembled. It might as well have been COBOL for all I cared.

Atari 400/800 6502 asm were glory days for me.


Hi there, I'm the alternate timeline you, the one who did start learning assembly with an x86 (and a copy of Microsoft Macro assembler for my 12th birthday). My parents, specifically my father, clearly meant well by trying to get me into a computer that they perceived would be more relevant to career skills than the 8-Bit micros that a couple friends already had. But what I got was not an actual IBM PC or even a close match like a Compaq, but a relatively obscure clone (panasonic, iirc) which, unbeknownst to me at the time, had a slightly different method for switching between video modes than the default CGA adapter/BIOS combo that was presumed by the meagre and not-written-with-middle-schoolers-in-mind materials available in my rural environment. this a decade before the internet would become widely accessible. reaching a worthwhile BBS meant furtive and risky calls to long distance numbers at strange hours of the night, which would certainly be discovered when the next bill came, and have to be covered by whatever allowance I had coming.

Since the main motivating interest was trying to get usable sprite-like animation working for a game I wanted to create, not being able to switch out of character mode without hanging the machine and having to start all over again was a leaden and demotivating drag. Especially because the thing did not instantly reboot but rather, loaded MS-DOS two-point something from floppy at a couple minutes a pop, and then loading up masm with much disc swapping involved the whole time due to the machine having only 256k.

I felt very bad and didn't want to tell my parents about this because they had spent a great deal of their at the time squarely middle class disposable income to get me the machine, and on masm itself, which wasn't particularly easy to get ahold of in the middle of farmland nowhere. And because I knew they meant well, trying to get me on track with a machine that appeared to be the dominant platform at the time and thus worth the extra cash to give me a head start. almost crushed all interest I had in programming, the obscene frustration of having to trial and error calling an interrupt or something, guessing at what the parameter could be and having no idea which out of the 220 (or more) possibilities would be the one that worked. This is not even getting into the perplexing and arcane yak shaving involved in dealing with the stupid x86 segmented memory model ( which I tried to avoid as much as possible, and just fit everything inside a single segment). I didn't understand why it was set up the way it was, so it was purely mechanical "how" ritual memorization without any context or insight.

Even as a 12 year old with nothing to do all summer, I did not have enough time ro sit there cycling the power and to waiting 7 or 8 minutes between reboots. And God forbid the thing broke due to all the power cycling, or chewed up one of the expensive, (for a 12 year old), system disks.

I had no idea how much I was missing by having a supposedly higher end "real computer" . Other me, indeed be thankful you dodged that bullet.


For me it was:

BASIC→Z80→6502→6802→6805→68000→8086→Pascal→...

And honestly, 6502 was the odd one out that felt like programming in mud.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: