> # Volume Four:

> # Intermediate Assembly Language

> Volume Four: Intermediate Assembly Language

> This volume completes the material traditionally taught in a 10 or 15 week course on assembly language programming (the difference between such courses is how many chapters they've skipped up to this point). This volume also completes this text's discussion of the essential material you need to know to start using assembly language effectively. Although there is still much for you to learn, after you complete this volume any further study of assembly language tends to be more specialized. In any case, mastery of the material up to the end of this volume is an important milestone. Once you absorb and are able to apply this material, you can start calling yourself an "Assembly Language Programmer."

> Chapter One: Advanced High Level Control Structures I
> This chapter completes the discussion of HLA's high level control structures. It completely discusses TRY..ENDTRY and introduces several new high level control structures.
> Chapter Two: Low Level Control Structures
> This chapter discusses the "real" way to do control structures, using "pure" assembly language. This is a very important chapter; you cannot call yourself an assembly language programmer if you haven't mastered the low-level control structures.
> Chapter Three: Intermediate Procedures
> This chapter extends the information on procedures found in the previous volume. This chapter discusses some of the low-level implementation details of procedures and describes how to call procedures and pass parameters using "pure" assembly language.
> Chapter Four: Advanced Arithmetic
> This chapter discusses multiprecision and binary coded decimal arithmetic. It also describes how to input and output very large values (code included!).
> Chapter Five: Bit Manipulation
> This chapter discusses bit operations in assembly language. You'll learn how to deal with packed data, insert and extract bit strings, count bits in an operand, and do all other sorts of bit-related stuff.
> Chapter Six: The String Instructions
> This chapter discusses the 80x86 string instructions which are convenient for manipulating large blocks of memory.
> Chapter Seven: The HLA Compile-Time Language
> This chapter begins the discussion of one of HLA's most powerful features - the HLA compile time language. In this chapter you'll learn about conditional compilation, compile-time loops, compile-time functions, generating tables, and lots of other features that make assembly language programming easier.
> Chapter Eight: Macros
> This chapter continues the discussion of the HLA compile-time language with a discussion of one of HLA's most powerful features - the HLA macro processor. In this chapter you'll learn how to extend the HLA language and do all those neat things that the HLA Standard Library provides.
> Chapter Nine: Domain Specific Languages
> This chapter describes how to design and implement your own programming language inside HLA.
> Chapter Ten: Classes
> This chapter describes classes and object-oriented programming in HLA.
> Chapter Eleven: The MMX Instruction Set
> This chapter describes the special MMX multimedia extensions on the Pentium and later chips.
> Chapter Twelve Mixed Language Programming
> This chapter describes how to call HLA procedures and access HLA data from other languages.
> Chapter Thirteen: Questions, Projects, and Laboratory Exercises
> Test your knowledge and see how well you've learned the material in this chapter!