При введение подпрограмм переменные разделяются глобальные и локальные переменные.
Глобальные переменные – объявляются в блоке переменных программы и видны во всей программе.
Локальные переменные – объявляются в блоке переменных подпрограмм и видны в момент выполнения подпрограммы.
Наряду со свойствами локальных переменных процедуры и функции могут модифицировать глобальные переменные. Глобальные переменные должны в этом случае быть описаны выше подпрограмм.При совпадении имен глобальных и локальных переменных (типов, констант) сильнее по значению локальные переменные (типы, константы) и они будут модифицированы внутри подпрограмм. При одинаковых именных глобальных и локальных переменных могут модифицироваться глобальные переменные: «имя программы». «имя переменной».
Вызов подпрограмм.
«Имя»(«фактический параметр 1», «фактический параметр 2», …);
При вызове процедур в стек сохраняются данные переменных процедур JMP «подпрограмма» и переменных переходящих по адресу в подпрограмму,где выполняется последовательность команд. Последовательно выполняется все вызовы подпрограмм команда возврата IRET извлекает из стека (данные основной программы) и переходит в основную программу в подстроку команды подпрограммы.