- Paperback: 419 pages
- Publisher: CRC Press; 1 edition (January 11, 1997)
- Language: English
- ISBN-10: 087930474X
- ISBN-13: 978-0879304744
- Product Dimensions: 7.5 x 1 x 9.2 inches
- Shipping Weight: 1.7 pounds (View shipping rates and policies)
- Average Customer Review: 19 customer reviews
- Amazon Best Sellers Rank: #1,335,005 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Windows Assembly Language and Systems Programming: 16- and 32-Bit Low-Level Programming for the PC and Windows 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Customers who bought this item also bought
What other items do customers buy after viewing this item?
About the Author
Barry Kauler is the author of five books, including Windows Assembly Language and Systems Programming, and a contributor to Dr. Dobb's Journal. He is a teacher and consultant on real-time systems design.
Browse award-winning titles. See more
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
a) your compiler is producing instructions different to those you intended with your higher-level language
b) debugging system-level code
c) disassembling some binary file that has no source code
d) presented with a crash address alone.
e) You might even need to write a little assembly when what you are doing simply cannot be written in a higher level language.
There are some excellent books to help learn assembly, and chapters in books and articles by the likes of Pietrek and Robbins.
Kauler is different. He believes you should write your Windows GUI programs straight in assembler - dialogs, menus, windows and all. He thinks this is a good way to write Windows programs. Anybody who wants to follow his advice does not need this book, he needs to learn about modern tools. Modern compilers are really good, and it is ludicrous to suggest replacing their work with yours.
Having undermined the central premise of this book, it is worth commenting on the content. Firstly, it is very heavy going, and somehow clunky. I don't know if it is the font, page layout, or simply trying to cover too much too quickly, but I had to read each paragraph a few times to understand what was being said here. The book has clearly been rehashed from previous Kauler literature, even leaving in the same screen shots from 1992! Several chapters have rambling overviews of Windows architecture or the boot up process, and quite frankly, other books cover this far better. What this stuff has to do with assembly is not explained.
He also seems to be stuck in a time warp, by writing most of his code in 16-bit assembly. There was a time, when I was still young, when you had no choice - 32-bit Windows was still a pipedream. But already for several years this has been obsolete, and the only need to know it is when poking around in the 16-bit underworld of 95, but heaven forbid actually programming in it!
I have to admit that there are some gems here - Kauler has prised open some of the cracks in the Win95 OS, and revealed some amazing tricks. Among them are using DOS interrupts to gain access to low-level services and using CallGates to run Ring0 code from Ring3. However, even this gem is written cock-eyed, with the main program in 16-bit code, and the CallGate callback in 32-bits! Does he want nobody to understand him?
And all this to expose the Win9x OS! It still exists, but is becoming more and more obsolete. XP Home is already upon us, and I doubt any home PCs will be sold with the 9x family installed ever again. The kind of people who want to dig into the OS migrated to NT years ago, while Kauler is still stuck in the 9x days, blinking in denial as he emerges from a 16-bit slumber.
Not for me such stuff. Avoid this book, unless you are a real 9x underworld junkie, think in assembly, have more that just a dash of Windows 3.1 nostalgia, and yearn for the good old days of 16-bit programming.
His approach of 'begin at the beginning' makes sure that the reader has the basics before attempting to absorb new information. For those who like to scan through the pages, you may reach the conclusion that the contents are daunting. If you read from the beginning however, you discover that whilst the learning curve is STEEP, and there is a LOT of information to absorb, the layout and approach is logical and not half as difficult as first impressions.
It is also pleasing to see that Barry appreciates that some of the material, whilst useful and neccessary, is very dry reading. The injection of a little humor breaks what would otherwise be boring. (eg: pp99 "ALL OF THIS STUFF DOWN TO CREATEWIN IS PRETTY HORRIBLE, SO LET YOUR EYES GLAZE OVER AND READ QUICKLY ONWARD TO CREATEWIN:").
In conclusion, whilst not a complete reference on all matters regarding assembly language programming in the 'Windows' environment, this book certainly gives you the feeling of having been given the 'rosetta stone'. With the provided further reading references, an MS-DOS programmer should be able to effiencently convert to the new world of 'Windows'.
The only drawbacks I find are:
- the comparison Win16 <-> Win32 is made, I'd rather see the comparison Win9x <-> Winnt;
- the author doesn't always explain what he promised to explain. E.g. A chapter about Ring0 Code is about an example of *getting* ring0 from ring3;
- the source code is messy, and doesn't always compile.
But still, it's a great book.