In other words: It’s done. Well, at least the hardest part (for me) is done: Yesterday I uploaded the last odd bits of x64 Assembly Language Step by Step, Fourth Edition to the publisher’s cloud. Now comes the work that I don’t have to do: copy edits, tech edits, layout, proofing. I will have some odds and ends to deal with down the road a ways, like looking at the proofs, building the listings archive, and rewriting my assembly book web page to reflect the new edition.
The publisher hired the estimable David Stafford to do tech edits, which is quite an honor. I’ve known David since the early PC Techniques days, and that guy knows his stuff with a capital-K. If there are booboos, bugs, or dryer lint in that thing, he’ll spot it. (Dryer lint we may leave for the production service.)
I’ve been working on this project since mid-April 2022. This is the fourth edition of the book from John WIley, and the fifth edition overall. The very first edition came from Scott, Foresman at the end of 1989, and was part of a short-lived assembly language series that I acquired and edited for them on contract back in the very late ‘80s. Its original title was Assembly Language from Square One. We were just getting out of second gear in 1990 when Scott Foresman was sold to Harper Collins. Toward the end of 1990, Harper Collins put the Scott Foresman trade book line out of print. I got the rights back in 1991.
I turned around and took the book to John Wiley, who bought it on the spot. I rewrote and expanded the book, which appeared from Wiley in 1992. The title had to change when I took it to Wiley to avoid mixups on retail channel returns, so the book became Assembly Language Step-by-Step. That’s not a bad title, in fact, since the whole point of the book was to do a methodical, patient introduction for people just getting started in computing. The 1992 edition was all-DOS, as you might imagine. In 1999 Wiley asked me to do an update that included both DOS and 32-bit Linux. I retained nearly all of what had been in the first Wiley edition, and added another 200 pages for 32-bit concepts and Linux. It was published in 2000.
That book sold extremely well for its nine-year life. In 2008 Wiley asked me for a new edition devoted entirely to Linux. DOS was almost extinct by then, so it was a good move. With only one tail to wag I was able to go into a great deal more detail about Linux and 32-bit protected-mode programming generally. It was a big job that took me seven or eight months, but the book appeared in 2009, at 610 pages.
As the teens drew toward the 20s and 64-bit Intel/AMD CPUs went mainstream, I enquired about a 64-bit edition every so often. In each case, my acquisitions editor basically said, “Don’t call us. We’ll call you.” So I stopped asking, and the 2009 edition kept on selling.
The call came in early April 2022. My old acquisitions editor had retired, and the new one was very much on board with an x64 rewrite. He asked me how long it would take. By then I was 69, and asked, How about a year? He said, Sure.
And that’s almost what it took, whew.
I don’t exactly when we’ll have books. Summer, I’m guessing; maybe late summer. It’s hard to know in this business. I’ve already been asked if I’m ever going to do a 128-bit version. Well, we need 128-bit CPUs first, and in truth I don’t see them on the horizon. We needed 64 bits for the address space way more than the register width. Since the AVX-512 math subsystem on nearly all modern Intel/AMD CPUs already has 512-bit registers, we don’t need the register width, and since 264 is 1.84 x 1019, we’ve already got all the address space we will ever need. Without 128-bit Intel/AMD CPUs, my guess is that the fourth edition of the book will be the last, and it could well be around long after I go on to other realms.
If I’m going to do any large-scale programming tutorials going forward, it’ll be about the Lazarus IDE and GUI builder. But at least for the coming year, if I write anything at all I’m going to write SF.
But I think you knew that.
Jeff, Who is your target audience? I have always avoided assembly language like the plague. Even with low power processors like the 8088, I used PLM and later C. On the occasion when I have not been able to avoid it, I would carefully partition the assembly language part in a separate function called by the higher level language. It is hard for me to imagine someone writing assembly nowadays but I’m open to be educated /smile
My target audience are those people who want to study computing and eventually be programmers but don’t know where to start. My book is where to start. I teach assembly language because when you study how assembly works, you study the machine itself, and how it operates at the very heart of things.
The book isn’t for everybody and it certainly isn’t for someone who’s learned as much as you have already. Wire-wrapping my COSMAC ELF in 1976 taught me how computers work, and having to toggle in binary opcodes through toggle switches made the lesson stick.
The book’s been in print now for almost 33 years, and has sold in middling six figures. I’ve gotten a couple hundred fan letters on it, many telling me that they could never make sense of computers before they read the book. One chap told me that without my book, he would have failed out of the CS program at his college. Stories like that convince me that I was in fact on to something, and that the audience is out there, and that the book will help them.
I never expected it to be this popular. My Pascal books were very popular, and they helped a lot of people, but Pascal’s not a mass-market thing anymore. As long as there are Intel/AMD CPUs, there will be a need for a patient, gentle introduction to the field. That’s what the book is. If only all my other hunches turned out this well…
Congratulations Jeff! I know it was hard work, but I somehow think it may have been a labor of love.
I want to underscore what you said in your first paragraph. I took an assembly language course for a PDP-8I in college, as an engineering major, then the next language available was ALGOL-60 (which I consider the direct ancestor of Pascal). Latter I moved on to big iron including PDP-10, IBM 360, Univac 1108 and 1110,and others, but it was always more as a Systems Analyst, although I did do some coding in C (prior to C++) and used Pascal, Perl, and at least a hand full of other languages and proprietary tools and packages during my carrer. I am rapidly closing in on 76 years old but before retirement in the late 1970’s I was the Network Engineer and Network Security Officer for an agency of State Government where I live.
With all that said, having taken that assembly language course and latter reading Adam Osborn’s book “An Introduction to Microcomputers” were the two most helpful things for my entire career. I worked with programmers and developers that had and had not had experience in assembly language and without exception, those that had really understood what was going on far better than those who had not had that experience.
“Because I want to know how it works”, Assembly step by step, Duntemann, Introduction: “Why Would you want to do That?”
The honor is all mine, Jeff. I’m about to dig in and am looking forward to it.
If Wiley will let you release spoilers, I’m very curious what debugger you decided to go with. I know you mentioned you were going to test drive IDA. Even if you didn’t select IDA what did you think of it?
Regarding your assembly book website, may I suggest you upgrade that to host info about all the recent editions (mainly the errata and the listings archive) rather than only the latest edition. I’ve known of other authors to do this and it is something I personally find useful, some examples:
https://horstmann.com/bigjava/index.html
https://learning-python.com/about-lp.html
On the Big Java page I noticed that the link for Big Java Early Objects First Edition is broken, although it is quite easy to guess the correct link. I just sent the author an email alerting him about this.
By the way, back in November I left you a comment/question on your Currently Available Books page. I’m confident you have 1000 more important things to do than answer that, but I thought I may as well take the opportunity here to advertise that question.
Great news, I will keep an eye out. I am only half way through my copy of the current version (opensource projects for work called me away) but will donate it when I get the new one.
I have always considered my programming skillset incomplete if I could not program in Assembler, so will look forward to ticking that off before I retire. Thanks Jeff.
I am very happy to hear that it’s done.
Having bought the last 3 editions I don’t care if it’s 1500 pages -I wish it were 🙂
I will buy this one with eager.
Thank you very much!
Thanks! Well, I got 600 pages (like last edition) and that’s all I get. But I did a lot in 600 pages last time, and I think I got even more in this time.
Book signing at Changing Hands Bookstore in Phoenix?
That would be cool and I’ll suggest it to the publisher…but it’s really not up to me.
It’s a personal curiosity of mine – what software do you use to write your books? (eg MS Word, Google Docs, Tex, etc) and if you can spare the time, what about it makes you use it rather than others?
I use Word 2007. It does what I need it to do, and it’s not SAAS. I’ve been using Word for over thirty years, beginning with Word for Windows 1.1, to Word 95, to Word 97, to Word 2000, to Word 2007. Before I began using Word I used WordPerfect, which was what we all used at PC Tech Journal in the 80s. Before that I used WordStar.
I don’t do a lot of fancy stuff at the word processor level. I write the text and edit it, then pour it into either an ebook editor or InDesign CS2 for print. Desktop computing is mature. There really isn’t a lot of upside in paying for the latest releases.
Congrats Jeff on completing the book. I look forward to its availability. As a Linux user, the book will be a nice addition to my programming library.