I am pleased to announce my new book, “Learn to Program with Assembly” (Amazon link here)!
This is a computer programming book using 64-bit x86-64 assembly language. It is based on Linux, but a Docker image is available that you can use to program through Windows or a Mac.
For those unaware, assembly language is the “lowest level” computer language – essentially the language of the computer itself. Today, it’s largely considered a “dark art”, but I’ve found that the people who are the best programmers of higher-level languages are people who have some familiarity with assembly language. Basically, learning assembly language teaches you how to conceptualize what the computer is actually doing when you code.
The book, in addition to basic assembly language, covers all sorts of “under the hood” aspects of how computer programs work, including memory allocation (malloc/free – a version of malloc is implemented in the book), garbage collection (a simple garbage collector is implemented in the book), shared libraries, position-independent code, object-oriented programming, exception handling, and other features of modern programming languages.
This is the 64-bit sequel to my semi-famous first book, “Programming from the Ground Up”.
6 Replies to “New Book by UD Author”
Great, you really like looking under the hood, mon! I would quibble that machine code and microcode go deeper yet but then that’s the stuff that is put into pseudo-English by assembly language. I shrug on the X86 family but then that is dominant. But I go back to cut-down PDP-11, i.e. 6800 architecture. KF
PS: In my own ruminations I have come to see Python as the new basic. I also think a version on Andrew S Tanenbaum’s layer-cake approach allows addressing the context of what is in lower layers and allows use of the approach that the architecture of a machine is the assembly language’s view of it. Where too, layer-cakes blend over into networks readily.
I had a series on PowerPC assembly language on IBM DeveloperWorks, but it has long been removed. Also a series on programming the Cell BE processor, which is likewise out-of-date.
You can see links to my old articles here, which the links don’t work but you can generally find them on Archive.org:
Great idea. It’s always better to start a subject in direct contact with physical reality, and then gradually float away into abstraction.
American education has been doing it backwards for many decades.
I started programming in PDP-11 assembler, then went to x86 assembler at a time when assembler was the only way to do graphics and sound. After that, I could understand the abstractions of C and C++ much more easily. If I had started first with C++, I would have simply given up in despair.
Being a voracious reader has made me a well-read and well-informed person. Because of my education and experience, https://topwritingreviews.com/ decided to work with me. I review the best online writing services and compare them to one another.