На этом шаге мы рассмотрим написание внешних модулей на Турбо ассемблере.
Встраиваемые операторы BASM особенно подходят для небольших оптимизаций - несколько инструкций здесь, несколько там, или же в отдельной функции, которую необходимо ускорить. Более продуктивная работа на ассемблере требует дополнительных возможностей автономного Турбо ассемблера (Turbo Assembler), поставляемого Borland отдельно.
TASM - замечательный продукт. Он может ассемблировать отдельные приложения, написанные полностью на ассемблере. Он также может похвастаться множеством опций и директив: от простых инструкций резервирования памяти до сложных макросредств. В TASM имеется даже нечто подобное структуре класса, чем вы можете воспользоваться для написания объектно-ориентированных модулей на ассемблере.
Основная ценность TASM для программистов на C и C++ заключается, тем не менее, в создании объектных (с расширением .obj) модулей для их компоновки вместе со скомпилированными программами. Вы можете задать прототип функции C или C++, написать операторы, в которых она вызывается, и реализовать её полностью на ассемблере.
Как и встраиваемый код BASM, внешние ассемблерные модули при написании требуют внимательности и усидчивости. Всегда следует сначала удостовериться в том, что хлопоты окупятся сторицей, не стоит переводить либо полностью, либо большую часть вашего кода в ассемблер в надежде повысить его производительность. Определите критические участки кода и сконцентрируйтесь на том, чтобы заставить их работать как можно быстрее.
На следующем шаге мы рассмотрим использование утилиты H2ASH.