The Art of Assembly Language
Added 31 Jul 2008
However one looks at the situation, software developers truly skilled in low-level assembly programming are a true rarity due to the popularity and simplicity of high-level languages. Luckily technology has brought forth a new concept to address the intricacies of assembly code. High-level assembly works by interpreting commands similar to today's contemporary languages into low-level assembly commands, thus allowing even the most entry-level of software developers to program assembly-based applications.
The Art of Assembly Language by Randall Hyde offers a high-level approach to learning assembly code. Its bundled High-Level Assembler (HLA) leverages your knowledge of existing programming languages in hopes of easing the transition to assembly. In addition to the HLA, this book provides a wealth of open-source and proprietary development tools designed for the 32-bit x86 architecture, for both Windows and Linux.
About Randall Hyde
Randall Hyde has taught assembly language programming at the university level for over a decade and has developed several commercial software systems. His website, Webster: The Place on the Net to Learn Assembly Language Programming (http://webster.cs.ucr.edu), is the premier destination for anyone learning assembly, with well over 2 million visitors. Hyde is the author of Using 6502 Assembly Language (Prentice Hall) and co-author of The Waite Group's MASM 6.0 Bible (Sams).
The Purpose of Assembly Coding
Many developers doubt the validity of assembly programming in comparison to the ease of high-level languages like C++. These people are missing the primary points of assembly: efficiency and performance. Assembly represents the most streamlined and optimized code available, especially for those dedicated enough to learn the low-level interface.
As noted earlier, the low-level aspects of assembly tend to scare away even seasoned programming veterans. The Art of Assembly Language transcends this barrier through the introduction of the High-Level Assembler. The HLA syntax closely parallels popular development platforms (Delphi, Pascal, etc.), thus allowing anyone with rudimentary programming experience to harness the power of assembly.
High-Level Assembly Language
The HLA syntax should prove familiar to already experienced programmers. For comparison, my background experience in software development is based within Microsoft Visual C++ and Fortran. I found HLA certainly is easier to comprehend than Fortran and nearly as powerful as C++. Just as advertised by the text, I was capable of turning out simple assembly programs after reading just the first three chapters.
HLA provides another interesting aspect in that all code can readily be compiled for both Windows and Linux with little or no porting required. This provides a pleasant experience, especially since most HLA tutorials are directed only towards 16-bit MS-DOS applications. Upon completing The Art of Assembly Language, one should be more than capable of developing not only useful applications, but device drivers and operating system extensions as well.
While this book is best suited for people already possessing basic programming knowledge, the text is well authored and easy to understand. The tutorials are thoroughly explained, and the example code segments is superbly commented. The book began life as an Internet downloadable text with the content being cultivated over many years, thus delivering the most inclusive assembly language tutorial I have ever read. I recommend reading chapter three (263KB Abobe PDF) before purchasing the book, as this sample chapter provides a great example of the wealth of information found within the The Art of Assembly Language.