Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Подскажите кто знает..., Вопрос по ассемблеру...
 
Подскажите пожалуйста в чем разница с учетом структуры команд между:
mov ES:[DI],AX;
и
mov [SI],AX;
Заранее спасибо....очень надеюсь на помощь...
И существуют ли какие-нибудь средства защиты (может что то похожее на кольца защиты) в реальном режиме работы процессора?
 
ЕМНИП, в ia16 и ia32 обращение к [SI] без явного указания сегментного регистра, по умолчанию подразумевает использование DS (т.е. работает DS:[SI]). А в случае с [DI] – ES (ES:[DI]). Поэтому, когда используется именно тот, что подразумевается по умолчанию, на его отсутствии можно иногда сэкономить аж целый байт кода :)

http://wiki.osdev.ru/index.php/Сегментные_регистры
http://dims.karelia.ru/x86/env_4.shtml

Иначе на префикс замены сегмента в команде уходит лишний байт.
Изменено: disintegrator - 01.07.2009 00:57:06
 
disintegrator, огромное спасибо!
а насчет средств защиты в реальном режиме, существуют какие-нибудь способы или их тупо нет?
 
Цитата
NikAnder пишет:
а насчет средств защиты в реальном режиме, существуют какие-нибудь способы или их тупо нет?
В реальном режиме x86 больше средств запутывания и запугивания, чем защиты :). Причем их еще нужно реализовывать в коде. Не даром разработчики предпочли, в конце концов, переползти в защищенные режимы – там порядку побольше и анархии поменьше: у процессоров появилась хоть какая-то поддержка колец защиты, которыми пользуются операционки и по сей день.
Страницы: 1
Читают тему