Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Образует адресную пару из данного регистра и смещения имени
(у нас —ES:0), которую и записывает в формируемую машинную Команду. При этом ассемблер учитывает используемое в 180X86 со- глашение о сегментных регистрах по умолчанию: если в адресной Паре, построенной им самим или явно заданной в программе, сег- Ментный регистр совпадает с регистром по умолчанию, то в машин- Ную команду заносится лишь смещение. Если, скажем, в нашем Примере встретится команда MOV СХ,В, тогда по имени В ассемблер построит пару DS: 1, но поскольку опе- Ранд-адрес команды MOV по умолчанию сегментируется по регистру DS, то записывать этот регистр в машинную команду излишне и ас- Семблер записывает в нее только смещение 1. Таким образом, директива ASSUME избавляет программистов от Необходимости выписывать полные адресные пары не только тогда, Когда используются сегментные регистры по умолчанию (как в слу- Чае с именем в), но тогда, когда в машинной команде нужно было Бы явно указать сегментный регистр (как в случае с именем с). В MASM сегментный регистр в ссылке на имя требуется указывать Лишь тогда, когда имя должно по каким-либо причинам сегменти- Роваться по регистру, отличному от того, что поставлен в соответст- Вие всему сегменту, в котором это имя описано. Глава 4. Персональные компьютеры Однако все это справедливо только при соблюдении следующих Условий. Во-первых, директива ASSUME должна быть указана перед пер- Вой командой программы В противном случае ассемблер, просмат- Ривающий текст программы сверху вниз, не будет знать, как сег- Ментировать имена из команд, расположенных до этой директивы, И потому зафиксирует ошибку. Во-вторых, в директиве ASSUME каждому сегменту следует ста- вить в соответствие сегментный регистр: если ассемблер встретит Ссылку на имя из сегмента, которому не соответствует никакой сег- Date: 2015-11-13; view: 378; Нарушение авторских прав |