Предыдущий раздел ВЫВОД  НА  ЭКРАН  ДЕСЯТИЧНЫХ  И ШЕСТНАДЦАТЕРИЧНЫХ ЧИСЕЛ Следующий раздел

11.4. Много файловая исходная программа

Для выполнения тестирования процедуры 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,  который теперь содержит главную процедуру программы.

 


Предыдущий раздел В начало Следующий раздел