Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Программирование -> Assembler -> Основные команды языка ASSEMBLER


Основные команды языка ASSEMBLER



###  Команда MOV #########################################################

 ### Осуществляет передачу содержимого второго операнда в первый.

 ### Регистр флажков не модифицируется.

 ### Форматы команды:
                                                       7                0
    +-------------------------+ l = 2 байта            +----------------+
    ¦ MOV  Регистр1, Регистр2 ¦ t = 2 такта            ¦   100010 d w   ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 3-4 байта          ¦  mod  reg  r/m ¦
    ¦ MOV  Регистр,  Память   ¦ t = 9+ЕА тактов        ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
    +-------------------------+ l = 3-4 байта          +----------------¦
    ¦ MOV  Память,   Регистр  ¦ t = 8+ЕА тактов        ¦     dispH      ¦
    +-------------------------+                        +----------------+

                                                       7                0
    +-------------------------+ l = 3-6 байта          +----------------+
    ¦ MOV  Память, Константа  ¦ t = 10+ЕА тактов       ¦   1100011  w   ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦  mod 000  r/m  ¦
                                                       ¦----------------¦
                                                       ¦     dispL      ¦
                                                       ¦----------------¦
                                                       ¦     dispH      ¦
                                                       ¦----------------¦
                                                       ¦     dataL      ¦
                                                       ¦----------------¦
                                                       ¦     dataH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 2-3 байта          +----------------+
    ¦ MOV  Регистр, Константа ¦ t = 4 такта            ¦   1011 w reg   ¦
    +-------------------------+                        ¦----------------¦
     Нельзя определять сегментные регистры.            ¦     dataL      ¦
                                                       ¦----------------¦
                                                       ¦     dataH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 3 байта            +----------------+
    ¦ MOV  Аккумулятор, Память¦ t = 10 тактов          ¦   1010000  w   ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦     dispL      ¦
                                                       ¦----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 3 байта            +----------------+
    ¦ MOV  Память, Аккумулятор¦ t = 10 тактов          ¦   1010001  w   ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦     dispL      ¦
                                                       ¦----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ MOV СегРегистр, Память  ¦ t = 8+ЕА тактов        ¦   10001110     ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 2-4 байта          ¦  mod 0sreg r/m ¦
    ¦ MOV СегРегистр, Регистр ¦ t = 8+ЕА тактов        ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
       Нельзя использовать регистр  CS, т.к.           +----------------¦
       результат операции будет неопределен.           ¦     dispH      ¦
      При   инициализации    рекомендуется            +----------------+
       использовать регистр АХ.

                                                       7                0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ MOV Память,  СегРегистр ¦ t = 9+ЕА тактов        ¦   10001100     ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 2-4 байта          ¦  mod 0sreg r/m ¦
    ¦ MOV Регистр, CегРегистр ¦ t = 9+ЕА тактов        ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
                                                       +----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+

###  Команда XCHG #########################################################

 ### Обменивает  содержимое  двух  операндов.  В  качестве операндов нельзя
 использовать сегментные регистры.

 ### Регистр флажков не модифицируется.

 ### Форматы команды:
                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ XCHG  Регистр,  AX      ¦ t =    тактов          ¦    10010 reg   ¦
    +-------------------------+                        +----------------+
     Команда XCHG AX, AX используется
     как команда пустой операции  NOP.
                                                       7                0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ XCHG Регистр1, Регистр2 ¦ t = 4 такта            ¦   1000011  w   ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 2-4 байта          ¦  mod reg  r/m  ¦
    ¦ XCHG Регистр,  Память   ¦ t = 17+ЕА тактов       ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
                                                       +----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+

###  Команда XLAT #########################################################

 ### Заменяет содержимое аккумулятора AL на значение, выбираемое из таблицы,
 на которую указывает регистр BX. Содержимое  AL интепретируется как индекс
 выбираемого байта.

      +-----------------------------------+           ¦  П А М Я Т Ь
  ВХ  ¦ эффективный адрес таблицы   ------------------¦----------------¦
      +-----------------------------------+           ¦                ¦
                                                  ¦   ¦----------------¦
                        +-----------------+       ¦   ¦                ¦
       Регистр AL перед ¦   и н д е к с ----------¦   ¦----------------¦
       выполнением XLAT +-----------------+       ¦   ¦                ¦
                                                  ¦   ¦----------------¦
                                                     ¦                ¦
                        +-----------------+     -----¦----------------¦
       Регистр AL после ¦   содержимое ----------------- содержимое   ¦
       выполнения  XLAT +-----------------+           ¦----------------¦
                                                                       ¦
 ### Регистр флажков не модифицируется.

 ### Формат команды:
                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ XLAT                    ¦ t = 11 тактов          ¦    11010111    ¦
    +-------------------------+                        +----------------+

 ### Примечание:
     Смещение  адресного  значения таблицы  можно загрузить в регистр  ВХ с
 помощью  команд  LEA,  LDS  или  другими  способами.

###  Команда LEA #########################################################

 ### Загружает   в  первый  операнд   эффективный  адрес   памяти,  который
 вычисляется в  соответствии с указанным режимом адресации второго опреанда.
 В  качестве  первого  операнда  нельзя  использовать  сегментные  регистры.

 ### Регистр флажков не модифицируется.

 ### Формат команды:
                                                       7                0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ LEA   Регистр, Память   ¦ t = 2+ЕА тактов        ¦   10001101     ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦  mod reg  r/m  ¦
                                                       ¦----------------¦
                                                       ¦     dispL      ¦
                                                       +----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+
 ### Примечание:
     Во многих случаях команда LEA идентична команде MOV с непосредственным
 операндом. Например:

     LEA  BX,  EXWORD   - эквивалентно -   MOV  BX,  OFFSET  EXWORD
                                          (оператор   OFFSET   сообщает,
                                          что  надо переслать  СМЕЩЕНИЕ
                                          адресного значения переменной)

###  Команда LDS #########################################################

 ### Загружает  в  первый  операнд  (обычно регистр SI)  значение  смещения,
 расположенное  по  адресу  второго  операнда, а  в  регистр  DS  загружает
 значение  сегмента,  расположенное  по  адресу  второго  операнда + 2.

 ### Регистр флажков не модифицируется.

 ### Формат команды:
                                                      7                0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ LDS   Регистр, Память   ¦ t = 16+ЕА тактов       ¦   11000101     ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦  mod reg  r/m  ¦
                                                       ¦----------------¦
                                                       ¦     dispL      ¦
                                                       +----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+
 ### Примечание:
     Указатель ( сегмент: смещение ) можно организовать с помощью директивы
 DD,  если  операндом  директивы   будет   адресное   выражение.  Например:

     ...............................
     TABLE           DB  '0123456789'
     ...............................
     TABLE POINTER   DD   TABLE         ; В  переменной   TABLE POINTER
     ...............................      содержится указатель на TABLE
     ...............................      сегмент:смещение
     ...............................
     LDS   SI,  TABLE POINTER           ; Из переменной  TABLE POINTER в
     ...............................      регистр DS загружается сегмент,
     ...............................      в регистр SI - смещение

###  Команда LES #########################################################

 ### Загружает  в  первый  операнд  (обычно регистр DI)  значение  смещения,
 расположенное  по  адресу  второго  операнда, а  в  регистр  ES  загружает
 значение  сегмента,  расположенное  по  адресу  второго  операнда + 2.

 ### Регистр флажков не модифицируется.

 ### Формат команды:
                                                       7               0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ LES   Регистр, Память   ¦ t = 16+ЕА тактов       ¦   11000100     ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦  mod reg  r/m  ¦
                                                       ¦----------------¦
                                                       ¦     dispL      ¦
                                                       +----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+
 ### Примечание:
     Указатель ( сегмент: смещение ) можно организовать с помощью директивы
 DD,  если  операндом  директивы   будет   адресное   выражение.  Например:

 ### Регистр флажков не модифицируется.

 ### Формат команды:
                                                       7               0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ LES   Регистр, Память   ¦ t = 16+ЕА тактов       ¦   11000100     ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦  mod reg  r/m  ¦
                                                       ¦----------------¦
                                                       ¦     dispL      ¦
                                                       +----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+
 ### Примечание:
     Указатель ( сегмент: смещение ) можно организовать с помощью директивы
 DD,  если  операндом  директивы   будет   адресное   выражение.  Например:

[   ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ   ]

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.