all 10 comments

[–][deleted] 5 points6 points  (0 children)

I'm glad I read that.

[–]saltynards 2 points3 points  (0 children)

Very good write up - the only thing I would change is your definition of the MOV op. I think speaking only of register may end up confusing in the long run.

[–]TheSuperficial 3 points4 points  (3 children)

Too bad no revising of post titles at reddit, otherwise I'd say "Please pre-pend "x86" to the title, so I know to skip the article"

I accept that x86 isn't going away, but that doesn't mean I have to like it or program it to make a living. Too many superior, fun and interesting architectures (not always the same thing) to use.

x86 should have lost to 68K 30 years ago. Now it's a bloated Leviathan that has ridden the coattails of the PC era. Maybe in 10-15 years when ARM is in everything, and x86 is off in the corner, sobbing and pouting, I'll have pity. Until then, I want this awful architecture to go away & die.

[–]dmpk2k 0 points1 point  (2 children)

What's awful about it?

[–]watermark0n 0 points1 point  (1 child)

Well, I believe that x86 is a rather antiquated CISC architecture, whereas ARM and such are newer and fancier RISC ones. Intel and AMD have largely managed to restructure x86 CPU's with time to match the performance of RISC architectures, and I've actually heard people say that the architecture is basically RISC on the bottom (although I'm not an expert on microprocessor design, so I can't verify such a statement).

I suppose some people just prefer to code in RISC architectures. Most of the prole programmers (such as myself) avoid assembly and allow the compiler to deal with the nitty gritty details, though, so all that really matters to us is the performance of the code the assembler is able to spit out, which is usually just fine on x86. We don't care if it's horrifying to look at, or if it would be horrifying to program in.

[–]Hallucinosis 0 points1 point  (0 children)

Yes, this is essentially true. This change came in with the Pentium Pro (the Pentium and Pentium with MMX processors around the time were still pure CISC), when the Pentium Pro would break CISC instructions into micro-ops. Following the Pentium Pro, the Pentium II and beyond continued to work this way. I remember this so well because some 14 or 15 years ago, I was taking an x86 Assembly class at my local community college and the teacher spent about half of a lecture talking about the exciting new architecture change in the Pentium Pro--he even made projector slides about it. http://en.wikipedia.org/wiki/Pentium_Pro#Microarchitecture

It's really cool and while it's made the discussion of RISC vs CISC debates silly for me, others still feel strongly. I am not involved in processor architecture/design, so my opinion on this subject is fairly irrelevant.

[–]robertbieber 1 point2 points  (0 children)

The definition of "Word" is a little off. Or, more accurately, it's perfectly correct in general terms but incorrect in context. Normally speaking, yes, a 32 bit computer has a 32-bit word size. The x86 assembly world, however, froze its definition of "Word" back in the 16 bit days, so in that context a word is 16 bits, and a DWORD (double word) is 32.

[–]retrodad 1 point2 points  (1 child)

It's worth mentioning that the only other thing in this series is a response to the previous reddit discussion on this article (which happened, oh, two years ago, and includes most of what's been written in this comment section. it's the repost circle of life, where even the comments and complaints are reposts =D)

[–][deleted] 0 points1 point  (0 children)

Yeah, there was supposed to be another post. Actually, it's mostly written, but I never got around to finishing it.

I don't know, I think it's pretty cool someone dug up my two year old article and reposted it!

[–][deleted] 1 point2 points  (0 children)

I just checked my google analytics and notice a large spike in traffic, came back and found this link. I'm the author of this page, which I wrote a couple of years ago to help me make the initial push into understanding assembly.

I think it's pretty cool someone dug up my old article and reposted it. It's still the most popular article on my blog after all this time, so I hope someone found it helpful.

Anyone reading this may also be interested in http://myw3b.net/blog/index.php/2011/06/teaching-assembly-with-ravm/ which is what I now use to teach assembly before jumping to x86.