43
В качестве инструмента разработки была использова-
на среда разработки С++ Builder от компании Embarcadero.
Причиной выбора именно этой IDE стал удобный реактор
форм, а также ее создания и интеграция C++ c языком Assem-
bler.
Приложение «Исследование
связи языка С с Ассем-
блером» имеет расширение .exe и, следовательно, работает
только в ОС Windows.
Требования к системе:
1)
ОС Windows XP или более поздние версии;
2)
Direct X 9;
3)
Наличие
в
системе
следующих
библиотек:borldmm.dll, cc32100mt.dll, rtl140.bpl, vcl140.bpl.
4)
Требования к оборудованию:
5)
10 Мб свободного места на жестком диске;
6)
Устройства ввода (мышь, клавиатура).
44
2 ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ
2.1 Алгоритм решения
В самом начале выполнения программы появляется
форма, где пользователю предлагается заполнить соответ-
ствующие поля необходимыми для расчета данными и вы-
брать какую-либо операцию.
Затем, в ходе выполнения программы производится
проверка полноты и корректности введенных начальных дан-
ных. Если исходные данные не прошли проверку – выводится
соответствующее уведомление.
После
успешно пройденной проверки, компилятор
Borland C++ Builder интегрирует языки C++ и Assembler.
Ключевое слово в данном случае__asm, которое вы-
зывает встроенный ассемблер и может отображаться везде,
где допустим оператор С или С++. Он не может отображаться
самостоятельно. За ним должна следовать инструкция по
сборке,
группа инструкций, заключенная в круглые скобки,
либо, в крайнем случае, пустая пара круглых скобок. Термин
"блок __asm" в этом разделе относится к любой инструкции
или группе инструкций, в скобках или без них. Синтаксис:
__asm assembly-instruction [ ; ]
__asm { assembly-instruction-list } [ ; ]
При использовании без круглых скобок ключевое
слово __asm означает, что остальная часть строки — это опе-
ратор на языке сборки. При использовании с фигурными
скобками оно означает, что каждая строка между скобками —
это оператор на языке сборки.
Для обеспечения совместимо-
сти с предыдущими версиями _asm является синонимом
__asm.
45
Пример:
Следующий фрагмент кода — это простой блок
__asm, заключенный в фигурные скобки:
__asm {
mov al, 2
mov dx, 0xD007
out dx, al
}
Кроме того, можно поставить __asm перед каждой
инструкцией по сборке.
__asm mov al, 2
__asm mov dx, 0xD007
__asm out dx, al
Все три примера создают один и тот же код, но пер-
вый стиль (где блок __asm заключен в фигурные скобки) име-
ет некоторые преимущества. Фигурные скобки четко отделя-
ют код сборки от кода С++ и
позволяют избежать лишнего
повторения ключевого слова __asm. Скобки также помогают
избежать неоднозначности. Если требуется поместить опера-
тор C++ на одной строке в виде блока __asm, необходимо за-
ключить блок в фигурные скобки. Без фигурных скобок ком-
пилятор не может определить, где прекращается код сборки и
начинаются операторы C++. Наконец, поскольку текст в фи-
гурных
скобках имеет тот же формат, что и обычный текст
MASM, можно легко вырезать и вставить текст из существу-
ющих исходных файлов MASM.
В отличие от фигурных скобок C++ фигурные скобки,
в которые заключается блок __asm, не влияют на область ви-
димости переменной. Можно также разместить блоки __asm в
виде вложения, вложение не влияет на область видимости пе-
ременной.
После расчѐтов из кода ассемблера данные передают-
ся в С++ и результаты выводятся в специально отведенное по-
ле, а выполнение программы прекращается.