Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Образует адресную пару из данного регистра и смещения имени





(у нас —ES:0), которую и записывает в формируемую машинную

Команду. При этом ассемблер учитывает используемое в 180X86 со-

глашение о сегментных регистрах по умолчанию: если в адресной

Паре, построенной им самим или явно заданной в программе, сег-

Ментный регистр совпадает с регистром по умолчанию, то в машин-

Ную команду заносится лишь смещение. Если, скажем, в нашем

Примере встретится команда

MOV СХ,В,

тогда по имени В ассемблер построит пару DS: 1, но поскольку опе-

Ранд-адрес команды MOV по умолчанию сегментируется по регистру

DS, то записывать этот регистр в машинную команду излишне и ас-

Семблер записывает в нее только смещение 1.

Таким образом, директива ASSUME избавляет программистов от

Необходимости выписывать полные адресные пары не только тогда,

Когда используются сегментные регистры по умолчанию (как в слу-

Чае с именем в), но тогда, когда в машинной команде нужно было

Бы явно указать сегментный регистр (как в случае с именем с).

В MASM сегментный регистр в ссылке на имя требуется указывать

Лишь тогда, когда имя должно по каким-либо причинам сегменти-

Роваться по регистру, отличному от того, что поставлен в соответст-

Вие всему сегменту, в котором это имя описано.

Глава 4. Персональные компьютеры

Однако все это справедливо только при соблюдении следующих

Условий.

Во-первых, директива ASSUME должна быть указана перед пер-

Вой командой программы В противном случае ассемблер, просмат-

Ривающий текст программы сверху вниз, не будет знать, как сег-

Ментировать имена из команд, расположенных до этой директивы,

И потому зафиксирует ошибку.

Во-вторых, в директиве ASSUME каждому сегменту следует ста-

вить в соответствие сегментный регистр: если ассемблер встретит

Ссылку на имя из сегмента, которому не соответствует никакой сег-







Date: 2015-11-13; view: 378; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию