In this chapter, we will consider aspects of assembly programming that make assembly language helpful and efficient for the purpose of optimization. We assume that readers are familiar with the system of commands of this language. In this chapter, we will explore the fundamentals of building efficient data processing algorithms in assembly language.
Assembly language is most often used for implementing mathematical algorithms, for searching in the arrays and sorting them quickly, and for optimizing repeated calculations. Tasks of this kind are very common in developing C++ programs, and it is usually time consuming to implement them.
In analyzing and building algorithms, we will use the assembly commands up to those for Pentium IV processors. The latest processor models include commands for processing data arrays quickly, as well as complex commands, which enable you to optimize the calculation algorithm itself.
Before plunging into the assembly programming, we will clarify the development tools. For illustrating calculation algorithms, we will use console applications created in C++ .NET, and the algorithms themselves will be written in the built-in assembly language of the C++ .NET 2003 programming environment. The program code fragments in the built-in assembly language enable you to analyze the calculation algorithms without having to study in-depth aspects of this C++ tool (these issues will be covered in the following chapters).