Предыдущий раздел | ВЫВОД НА ЭКРАН ДЕСЯТИЧНЫХ И ШЕСТНАДЦАТЕРИЧНЫХ ЧИСЕЛ | Следующий раздел |
Для выполнения тестирования процедуры Write_word_dec нам пришлось одну тестовую процедуру в файле Video_io.asm заменить другой, которая после завершения тестирования также больше не нужна. Очень неудобно вносить изменения в файл с готовыми (или почти готовыми процедурами) с целью добавления в него процедур временного назначения. Выход заключается в размещении тестирующей процедуры в отдельном исходном файле. Когда данная процедура становится ненужной, соответствующий файл уничтожается. Другой причиной размещения исходной программы в нескольких файлах является большой объем программы.
Далее будем понимать под файловой структурой исходной программы перечень файлов, содержащих текст программы на языке программирования. А также перечень процедур, входящих в состав каждого файла. Кроме процедур файлы могут содержать переменные – области данных, которым в исходной программе присвоены символьные имена. Примеры применения переменных встретятся нам в последующих работах.
Следует отметить, что в отличие от дерева подпрограмм файловая структура не влияет на машинную программу. Данная структура создается для исходной программы с целью обеспечения удобства в программировании. Нескольким программам, имеющим разные файловые структуры, может соответствовать одна и та же результирующая машинная программа.
При выполнении данной работы мы добавили в файл Video_io.asm короткую тестовую процедуру Test_write_word_dec. Теперь уберем ее оттуда и поместим в собственный отдельный файл Test.asm. В результате получим файловую структуру программы, приведенную на рис.41.
Рис. 41. Файловая структура исходной программы
Для того чтобы транслятор-ассемблер объединил несколько исходных файлов в единый текст исходной программы, каждый «родительский» исходный файл должен содержать псевдооператоры %include («включить»), в качестве операндов которых записаны имена «дочерних» файлов, заключенные в кавычки. Встретив, оператор include, транслятор заменяет его на текст «дочернего» исходного файла, указанного в этом операторе.
Рассмотрим эти псевдооператоры на примере файла Test.asm:
[org l00h]
Test_write_word_dec:
mov dx,12345
call Write_word_dec
int 20h ; Возврат в DOS
%include ‘Video_io.asm’ ; Включение файла Video_io.asm
З а п и ш и т е файл Test.asm на диск и внесите в файл Video_io.asm следующие изменения:
1) удалите из Video_io.asm процедуру Test_write_word_dec, т.к. мы поместили ее в файл Test.asm;
2) удалите из Video_io.asm выражение [org l00h], т.к. мы перенесли его в файл Test.asm, который теперь содержит главную процедуру программы.
Предыдущий раздел | В начало | Следующий раздел |