Turbo Assembler
В жизни каждого программиста наступает момент, когда он решает заняться изучением ассемблера. И это, без сомнения, правильное решение! Настоящий профессионал должен уметь создавать программы, используя ресурсы компьютера с максимальной эффективностью, а всё это невозможно без применения ассемблера. “ Максимальная скорость выполнения при минимальных размерах программы ” - девиз, под которым работают почти все программисты, пишущие на ассемблере.
Однако ассемблер имеет одну особенность, которая отпугивает многих начинающих программистов, - ассемблер является машинно-ориентированным языком. Это означает, что пишущий на ассемблере работает непосредственно с ресурсами компьютера, что требует хорошего знания его архитектуры, логики работы операционной системы, а также большой аккуратности при написании программы.
Несмотря на то, что ассемблер является машинно-ориентированным языком, то есть языком низкого уровня, программист может применять его для работы как на высоком , так и на среднем уровне. Низкий уровень программирования на ассемблере подразумевает прямое обращение к каналам ввода-вывода устройств, называемых портами ввода-вывода, и прямой доступ в оперативную память.
Turbo Assembler, помимо полной поддержки транслятора фирмы Microsoft имеет дополнительные возможности, объединённые в режиме, названном разработчиками Ideal. Использование этого режима даёт возможность начинающему программисту применять более наглядный и простой стиль разработки программ. Более опытные программисты, пишущие на ассемблере, могут использовать такие возможности режима Ideal, как вложенные структуры, объединения.
Важной особенностью режима Ideal является применение проверки типов данных, подобно языкам высокого уровня, что позволяет выявить многие ошибки ещё на этапе трансляции. Среди многих других важных преимуществ режима Ideal можно выделить следующие:
возможность использования одинаковых имён для обозначения членов различных структур.
применение операторов HIGH и LOW.
предварительное вычисление выражений EQU.
корректное управление сегментами данных объединённых в группы.
усовершенствованное использования директив.
разумное использование скобок в выражениях.
Turbo Assembler передаёт аргументы в процедуры на языках высокого уровня в кадре стека, помещая аргументы перед вызовом процедуры в стек. Процедуры, написанные на языках высокого уровня, считывают аргументы из стека по мере необходимости. При выходе процедура может удалять аргументы из стека или оставлять эту операцию для вызывающей процедуры.
Традиционным способом, с помощью которого объединяются программы, написанные на С++ и ассемблере, является разделительная компиляция с последующей компоновкой в один исполняемый файл. При этом можно использовать компилятор Borland C++, который вызывает Turbo Assembler для трансляции ассемблерной программы.
Ассемблер предоставляет программисту полную свободу действий при разработке программы, что одновременно является и его достоинством, и недостатком, так как требует от разработчика знания системы команд данного компьютера и его операционной системы. Кроме того, несмотря на минимальный размер выполняемого файла при максимальной скорости работы, время, необходимое для создания программы, резко возрастает с увеличением объёма разрабатываемого проекта. Поэтому ассемблер был и остаётся языком программирования для профессионалов.
В тоже время программисты, работающие на языках высокого уровня, столкнувшись с ограничениями, которые неизбежны при использовании этих языков, не должны полностью переписывать свои программы на ассемблере. Чаще всего бывает достаточно перевода нескольких фрагментов кода, критичных по времени выполнения, чтобы все проблемы исчезли. Кроме того существует много библиотек, которые написаны на языках высокого уровня, но с успехом могут применяться и в ассемблерных программах.