Модели программ, компиляция и отладка


На практике различают несколько моделей, используемых при написании программ. Существенное отличие моделей состоит в том, что каждая из них предполагает наличие различного числа сегментов и способов группирования программных сегментов и сегментов данных. Ниже перечислены используемые модели и даны их краткие характеристики (код – означает программный сегмент):

 

TINY - код и данные в одной группе (com - файлы );

SMALL - код – один сегмент, данные в одной группе;

MEDIUM - код – несколько сегментов, данные в одной группе;

COMPACT - код один сегмент, ссылка на данные – типа far;

LARGE - код – несколько сегментов, данные - типа far;

FLAT - код и данные в одном сегменте (плоская модель).

 

Для получения исполняемого файла программы составленной на ассемблере надо реализовать, по крайней мере, два этапа – осуществить трансляцию программы и получить объектный модуль с расширением obj, а затем скомпоновать объектные модули в исполняемую программу, с расширением exe (или com). Реализация первого этапа осуществляется с помощью программы MASM (или TASM), а второго – с помощью LINK (или TLINK). В ряде случаев, особенно при разработке сложных программ, состоящих из большого числа модулей, бывает не обойтись без специальных средств отладки, типа турбодебагера td.

Пусть текст исходной программы хранится в файле с именем SIMPLE.ASM. Трансляцию можно осуществить вызовом турбо ассемблера TASM.EXE с помощью, например, следующей команды DOS:

 

tasm /z/zi/n simple,simple,simple

 

Ключ /z разрешает вывод на экран строк исходного текста программы, в которых ассемблер обнаружил ошибки (без этого ключа поиск ошибок пришлось бы проводить по листингу трансляции).

Ключ /zi управляет включением в объектный файл информации, не требуемой при выполнении программы, но используемой отладчиком.

Ключ /n подавляет вывод в листинг перечня символических обозначений в программе, от чего несколько уменьшается информативность листинга, но сокращается его размер.

Стоящие далее параметры определяют имена файлов: исходного (SIMPLE.ASM), объектного (SIMPLE.OBJ) и листинга (SIMPLE.LST). При желании можно в строке вызова транслятора указать полные имена файлов с их расширениями, однако необходимости в этом нет, так как по умолчанию транслятор использует именно указанные выше расширения.

Важную роль при отладке программы на стадии трансляции играют ключи, которые управляют как процессом ассемблирования, так и полнотой листинга – файла с расширением LST, существенно облегчающего отладку программы.

Контрольные вопросы

1. Может ли регистр использоваться в фактическом параметре макровызова?

2. Чем отличается команда от директивы?

3. Придумайте, как программисты на ассемблере могут определить синонимы для мнемокодов команд. Как это можно реализовать?

4. Перечислите модели ассемблерных программ и укажите их особенности и основные отличия.

5. Перечислите все директивы определения данных и дайте примеры их использования.

6. Объясните назначение вспомогательной директивы DUP и приведите пример ее использования.

7. Какая директива определения данных используется под вещественные числа в формате ДВФ?

8. Приведите примеры использования директивы EQU.

9. Укажите все возможные способы передачи параметров процедуре.

10. Как расширились возможности регистров данных в процессоре Pentium, для целей адресации?

11. Расширилось ли число способов адресации в процессоре Pentium по отношению к Intel 8086 и на сколько?

12. Для чего используются директивы определения данных?

13. Какие директивы используются для определения данных в формате ВВФ?

14. Как осуществляется передача параметров в макросах?

15. В чем отличие в использовании макросов и процедур?

16. Приведите пример использования макросов – блоков повторения.

17. Для чего используются директивы условного ассемблирования?

18. Дайте сравнительную характеристику моделей программ.

19. Как можно узнать о том, выполняет ли ЦП команды ММХ и SSE?

20. В каких случаях используется директива PURGE?

21. Назовите отладчики, которые Вы знаете? Чем они отличаются?

22. Зачем нужен файл с расширением LST (листинг)?

23. Какую модель программы Вы использовали при выполнении лабораторных работ и почему?

24. Для чего служит программа debug.exe?

25. На каком этапе осуществляется «вставка» библиотечных процедур?

26. Существуют ли, какие-либо особенности использования команд ММХ и SSE в программах на ассемблере?

 

 




Дата добавления: 2018-11-26; просмотров: 728;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.