Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
MyArray2 db 23 dup(1, 2, 'x')
Директива использования сегментных регистров по умолчанию имеет синтаксис, представленный в листинге 2.6.
Листинг 2.6. Директива assume
assume <имя сегментного регистра>:<имя сегмента или nothing>[, <имя сегментного регистра>:<имя сегмента или nothing>, …]
Как отмечалось выше, для задания адреса в памяти требуется два регистра, один из них всегда сегментный, поэтому в команде при обращении к памяти приходиться набирать имя сегментного регистра, часто одного и того же. Директива assume позволяет избежать этого. Транслятор сопоставляет имя массива данных и автоматически подставляет сегментный регистр, заданный для сегмента, в котором расположен данный массив. Слово nothing показывает, что данный сегментный регистр не адресуется по умолчанию. Директива assume может использоваться в программе при каждом изменении сегмента для данного сегментного регистра, но обязательно в начале сегмента, где она задаёт по умолчанию сегментный регистр для сегмента кодов. Пример показан в листинге 2.7.
Листинг 2.7. Пример использования директивы assume
assume cs:code, ds:data, es:nothing
Здесь code и data – имена сегментов кодов и данных, соответственно, а сегментный регистр es не адресуется по уполчанию.
Дата публикования: 2014-11-28; Прочитано: 300 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!