Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Инструкция LES
Лучшие книги по Ассемблеру
Сделал подборку не новых, но проверенных книг по программированию на языке ассемблера. Если вы также как и я любите погружаться на низкий уровень, в те закоулки мира программирования, куда не всем путь открыт, то посмотрите. Возможно, что-то вам понравится. Подробнее... |
Инструкция LES в Ассемблере загружает указатель, используя регистр ES. Синтаксис:
LES REG, MEM
После выполнения этой команды флаги не изменяются.
Команда LES REG, MEM
выполняет те же действия, что и две следующие команды:
MOV REG, WORD PTR MEM MOV ES, WORD PTR MEM+2
Инструкция LES считывает из памяти по указанному адресу двойное слово (32 бит), содержащее указатель (полный адрес какой-либо ячейки памяти), и загружает младшую половину указателя (то есть относительный адрес) в указанный в команде регистр общего назначения, а старшую половину указателя (то есть сегментный адрес) в регистр ES.
В качестве первого операнда (REG) команды LES указывается регистр общего назначения, а в качестве второго (MEM) - ячейка памяти с двухсловным содержимым. Указатель, содержащийся в этой ячейке, может быть адресом как процедуры, так и поля данных.
А теперь ещё раз кратко:
LES REG, MEM
Эта команда получает двойное слово, адрес которого находится в МЕМ. Затем первые 16 разрядов из этой области памяти загружаются в регистр REG, а вторая часть двойного слова - в регистр ES.
То есть в памяти по адресу MEM содержится указатель (полный адрес), который мы можем разделить на СЕГМЕНТ:СМЕЩЕНИЕ, и с помощью команды LES записать сегмент в ES, а смещение в указанный в команде регистр (REG).
Для лучшего понимания ещё и пример:
.model tiny .code ORG 100h start: LES BX, VIDEO ; ES = B800h (память VGA), BX = 72Eh MOV AX, 0 ; Обнулить регистры MOV ES, AX ; ES = 0 MOV BX, AX ; BX = 0 MOV BX, VIDEO ; Аналог команды LES MOV ES, VIDEO+2 ; с использованием двух команд MOV ; ES = B800h (память VGA), BX = 72Eh RET ; Выйти из программы VIDEO DW 72Eh DW 0B800h END start
Напоследок, как всегда, о происхождении аббревиатуры LES.
LES - это Load ES (загрузить ES).
Подписаться на Дзен-канал
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |
Первые шаги в программирование
Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее... |