| What astonishes me about learning how to program is not that it's so hard, but that it's so easy. Am I nuts? Hardly. It's just that my curse is the curse of a perfect memory, and I remember piano lessons. My poor mother paid $600 in 1962 for a beautiful cherrywood spinet, and every week for two years I trucked off to Wilkins School of Music for a five dollar lesson. It wasn't that I was a reluctant student; I love music and I genuinely wanted to master the damned thing. But after two years, the best I could do was play "Camelot" well enough to keep the dog from howling. I can honestly say that nothing I ever tried and failed to achieve after that (including engineering school and sailboarding) was anything close to that difficult.
That's why I say: if you can play the piano, you can learn to program in assembly language. Even if you can't play the piano, I hold that you can learn to program in assembly language, if:
• You've ever done your own long-form taxes • You've earned a degree in medicine, law, or engineering • You've ever put together your kid's swing set • You've ever cooked a five-course dinner for eight and gotten everything to the table, hot, at all the right times
Still, playing the piano is the acid test. There are a lot more similarities than there are differences. To wit:
In both cases, you sit down in front of a big expensive machine with a keyboard. You try to memorize a system of notation that seems to have originated on Mars. You press the keys according to incomprehensible instructions in stacks of books. Ultimately, you sit there and grit your teeth while making so many mistakes your self-confidence dribbles out of your pores and disappears into the carpet padding. In many cases, it gets so bad that you hurl the books against the wall and stomp off to play Yahtzee with your little brother.
The differences are fewer: mistakes committed while learning assembly language won't make the dog howl. And, more crucially, what takes years of agony in front of a piano can be done in a couple of months in front of your average PC. Furthermore, I'll do my best to help.
That's what this book is for: to get you started as an assembly-language programmer from a dead stop. I'll assume that you know how to run your machine. That is, I won't go through all that nonsense about flipping the big red switch and inserting a disk in a drive and holding down the Ctrl key while pressing the C key. Van Wolverton can teach you all that stuff.
On the other hand, I won't assume that you know anything about programming, nor very much about what happens inside the box itself. That means the first few sections will be the kind of necessary groundwork that will start you nodding off if you've been through it already. There's no helping that. Skip to Section 3 or so if you get bored. |