Оперативная память

         

При программировании на ассемблере можно



Заключение.
При программировании на ассемблере можно использовать подпрограммы, хранящиеся либо в исходных модулях, подключаемых во время компиляции основного текста, либо в виде объектных модулей, объединяемых с главным модулем при построении задачи. Чему отдать предпочтение, решать вам.
Однако если основной модуль создается на одном из алгоритмических языков (Фортран, Паскаль, Си и пр.), то вспомогательные подпрограммы, составленные на ассемблере, должны оформляться в виде объектных модулей.
И последний совет. Постепенно у вас накопится достаточно много объектных модулей. Для упрощения собственного труда их лучше объединить в одну или несколько библиотек. В комплект поставки Макроассемблера обязательно входит библиотекарь, хранящийся в файле нь.ехе. Он выполняет много полезных функций, связанных с созданием, просмотром, пополнением и изменением библиотек объектных модулей. Библиотекарь поддерживает активный диалог с оператором, поэтому научиться работать с ним несложно.


; Вариант 2

— специальная команда enter
enter N, 0 ; заменяет три команды варианта 1 В первом варианте примера В. 6 показано, как резервируется пространство размером N байтов с помощью обычных команд. Начиная с модели Intel 80286, у микропроцессоров появилась специальная команда enter. Она сохраняет в стеке содержимое регистра bp, копирует в bpдрес верхушки стека и уменьшает на N содержимое sp, т. е. по результату эквивалентна трем командам варианта 1. При использовании во внешних процедурах второй параметр команды enter равен нулю.

Важно
Важно
Ни при каких обстоятельствах значение указателя стека не может быть нечетным числом. Поэтому количество байтов, отводимых для размещения промежуточных переменных, обязательно должно быть четным. Однако это не означает, что в пространстве стека нельзя размещать байты и работать с ними.

После выполнения любого из вариантов примера В.6 регистр bpспользуется для прямого доступа к параметрам и промежуточным переменным. Параметры расположены выше, а промежуточные переменные — ниже находящейся в bpточки отсчета. Обозначим смещение параметра или переменной как хх. В таком случае, при обращении к параметрам содержимое в bpувеличивается на величину смещения ([bp+хх]), а при обращении к промежуточным переменным оно уменьшается на величину смещения ([bp-хх]).

Прежде чем использовать переменные в командах, надо вычислить смещение каждой из них относительно регистра bp. Оно зависит от размеров предыдущих и данной переменной и не может быть равно нулю. Например, первая по порядку переменная может быть байтом, словом или двойным словом, ее адрес будет соответственно равен [bp-i], [bp-2] или [bp-4].

Содержание раздела