Главная » Статьи » Программное обеспечение. » Программы. |
Обмен данными между программами. 1. Для того чтобы данные, выделенные одной программой, были доступны из другой, первая должна объявить их в директиве PUBLIC в начале программы, а вторая — в директиве EXTRN, указав их тип. В таком случае вторая программа будет работать с данными, расположенными в «чужом» логическом сегменте данных. 2. Возможна передача данных из одной программы в другую через стек. Допустим, что подпрограмме требуются данные основной программы. Вызывающая программа может передать их через стек. При этом каждая команда PUSH записывает в стек одно слово (два байта) из памяти или регистра. Процедура может прочитать из стека записанные основной программой данные и выполнить с ними необходимые действия. Чтобы понять процесс обмена данными через стек, надо учесть особенности адресации стека. Указатель стека регистр SP изменяет своё состояние при выполнении команд PUSH (запись) и POP (чтение). Причём, содержимое регистра SP уменьшается на два при выполнении команды PUSH и увеличивается на 2 при выполнении команды POP. Таким образом, регистр SP указывает на вершину стека (совместно с регистром стека SS). Для чтения из стека и записи в стек в произвольном месте сегмента следует применять регистр BP, который связан по умолчанию при адресации с регистром SS. 3. Кроме перечисленных способов обмена данными между программами возможна передача через регистры. | |
Просмотров: 526 | |
Всего комментариев: 0 | |