Компиляция со встроенным ассемблером
Существует два способа, с помощью которых Borland C++ может
обрабатывать в вашем коде Си или С++ операторы встроенного ассемблера. Во-первых, Borland С++ может преобразовывать код Cи или
C++ непосредственно в код ассебмлера, а затем передавать его TASM
для генерации файла .OBJ. Во-вторых, Borland С++ для включения
ваших операторов ассебмлера непосредственно в поток инструкций
компилятора может использовать встроенный ассебмлер (BASM).
Для обработки операторов ассебмлера, встроенных в программы
Си и С++ можно указать параметр компилятора -B. По умолчанию -B
вызывает TASM или TASM32. Это можно переопределить с помощью параметр -Exxx, где xxx - другой ассебмлер. Если указывается параметр -B, компилятор сначала генерирует файл ассебмлера, а затем
вызывает TASM. Если включить в исходные код программы оператор
#pragma inline, то TASM будет вызываться и без параметра -B.
16-разрядный компилятор Borland С++ использует BASM, что
позволяет ассемблировать встроенный код ассебмлера самому компилятору, а не TASM. Этот внутренний ассебмлер компилятора делает
все то же, что и TASM, но имеет следующие ограничения:
ассебмлера.
Так как BASM не является полным ассебмлером, некоторые конструкции этого языка он не воспринимает. В этом случае Borland С++
будет выводить сообщение об ошибке. При этом у вас есть две возможности: упростить программный код встроенного ассебмлера или
использовать параметр -B для вызова TASM. Однако TASM может не
идентифицировать место ошибки, так как номер строки исходного кода теряется.