Инструкция 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).



Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика