Introduction to BASM for Beginners
The series of articles named “BASM for beginners”
currently consists of 4 articles and more are in progress. Common for
the articles, and coming articles, is that they explain some BASM issues by
use of an example function. Most often this function is first implemented in
Pascal and then the compiler generated assembler code is copied from the CPU
view in Delphi and then analyzed and optimized. Sometimes optimization
involves the usage of MMX, SSE or SSE2 instructions.
By taking the code made by the compiler from a Pascal
function the most commonly used instructions from the big 32 bit Intel
Architecture instruction set are introduced to the beginner first. Seeing
which code the compiler generates is leading to a valuable insight in the
effectiveness of compiler generated code in general and into the Delphi
As specific assembly code optimizations are introduced
generalizations will be introduced when suitable. These general
optimizations are suitable for implementation in compilers and most
compilers including Delphi have them. At some point in the future a tool
that automatically optimizes assembler code will be developed.
Knowledge about the target processor is often needed
when optimizing code and therefore are a lot of CPU details, such as
pipelines are explained in the series too.
As far as I know there is only little literature
available that explains all these issues on a level where beginners can
follow it. I hope this series will help fill this void.
Dennis Kjaer Christensen.
If you like these articles you can support the author with a payment of your
own choice. The account number is: 9280 456 37 05170. Swift number:
SPNO DK 22.
I am going to buy some more computers to make coming
articles even better. Opteron, Prescott and Centrino processors are very
interesting and I look forward to writing about optimizations targeting
BASM for Beginners 1, Word Version
BASM for Beginners 1B, Word Version
BASM for Beginners 1C, Word Version
BASM for Beginners 2, Word Version
BASM for Beginners 3, Word Version
BASM for Beginners 4, Word Version
BASM for Beginners 5, Word Version
BASM for Beginners 6, Word Version
BASM for Beginners 7, Word Version