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

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


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



###  Команда JMP #########################################################

 ### Осуществляет безусловный переход, модифицируя указатель команд IP (при
 переходе типа  NEAR) или  пару регистров  CS:IP  (при  переходе типа  FAR).
     Старое  значение  регистров  IP  и  CS  теряется.

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

 ### Форматы команды:
                                                       7                0
    +-------------------------+ l = 2 байта            +----------------+
    ¦ JMP SHORT  Метка        ¦ t = 15 тактов          ¦    11101011    ¦
    +-------------------------+                        ¦----------------¦
     Относительный  переход  типа   NEAR.              ¦     dispL      ¦
     Диапазон перехода  -128 : +127 байт.              +----------------+
     Если осуществляется  переход  назад,
     оператор SHORT можно опустить.
                                                       7                0
    +-------------------------+ l = 3 байта            +----------------+
    ¦ JMP  Метка типа NEAR    ¦ t = 15 тактов          ¦    11101001    ¦
    +-------------------------+                        ¦----------------¦
     Относительный  переход  типа   NEAR.              ¦     dispL      ¦
     Диапазон  перехода  -32768 : +32767               ¦----------------¦
     байт.                                             ¦     dispH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ JMP  Память             ¦ t = 18+ЕА тактов       ¦    11111111    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 2 байта            ¦  mod  100  r/m ¦
    ¦ JMP  Регистр            ¦ t = 11 тактов          ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
     Косвенный переход типа  NEAR. Адрес               +----------------¦
     перехода загружается из 16-битового               ¦     dispH      ¦
     общего регистра или слова памяти.                 +----------------+

                                                       7                0
    +-------------------------+ l = 5 байтов           +----------------+
    ¦ JMP  Метка типа FAR     ¦ t = 15 тактов          ¦    11101010    ¦
    +-------------------------+                        ¦----------------¦
     Прямой переход типа FAR:                          ¦     offL       ¦
      значение off загружается в IP,                  ¦----------------¦
      значение seg загружается в CS.                  ¦     offH       ¦
                                                       ¦----------------¦
                                                       ¦     segL       ¦
                                                       ¦----------------¦
                                                       ¦     segH       ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ JMP   Память            ¦ t = 24+ЕА тактов       ¦    11111111    ¦
    +-------------------------+                        ¦----------------¦
     Косвенный переход типа  FAR:                      ¦  mod  101  r/m ¦
      слово памяти загружается в IP,                  ¦----------------¦
      следующее слово памяти - в CS.                  ¦     dispL      ¦
                                                       +----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+

###  Команда CALL #########################################################

 ### Передает  управление   подпрограмме   с   автоматическим   сохранением
 адреса  возврата  в  стеке.

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

 ### Форматы команды:
                                                       7                0
    +-------------------------+ l = 3 байта            +----------------+
    ¦ CALL Метка типа NEAR    ¦ t = 19 тактов          ¦    11101000    ¦
    +-------------------------+                        ¦----------------¦
     Относительный переход типа NEAR:                  ¦     dispL      ¦
      производится  декремент  SP на 2,               ¦----------------¦
      включается в стек  содержимое IP,               ¦     dispH      ¦
      прибавляется  к  содержимому  IP                +----------------+
       значение индексного смещения.
                                                       7                0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ CALL Память             ¦ t = (21+EA) тактов     ¦    11111111    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 2 байта            ¦ mod  010  r/m  ¦
    ¦ CALL Регистр            ¦ t = 16 тактов          ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
     Косвенный  переход  типа  NEAR:                   +----------------¦
     * производится декремент  SP на  2,               ¦     dispH      ¦
     * включается  в стек содержимое IP,               +----------------+
     * слово,   адресуемое    операндом
       загружается в регистр IP.
                                                       7                0
    +-------------------------+ l = 5 байтов           +----------------+
    ¦ CALL Метка типа FAR     ¦ t = 28 тактов          ¦    10011010    ¦
    +-------------------------+                        ¦----------------¦
     Прямой  переход  типа  FAR:                       ¦     offL       ¦
     * уменьшается содержимое SP на 2,                 ¦----------------¦
     * заносится в стек содержимое CS,                 ¦     offH       ¦
     * уменьшается содержимое SP на 2,                 ¦----------------¦
     * заносится в стек содержимое IP,                 ¦     segL       ¦
     * в IP заносится off, в CS - seg.                 ¦----------------¦
                                                       ¦     segH       ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 2-4 байта          +----------------+
    ¦ CALL Память             ¦ t = (37+EA) тактов     ¦    11111111    ¦
    +-------------------------+                        ¦----------------¦
     Косвенный  переход  типа  FAR:                    ¦  mod  011  r/m ¦
      уменьшается содержимое SP на 2,                 ¦----------------¦
      заносится в стек содержимое CS,                 ¦     dispL      ¦
      уменьшается содержимое SP на 2,                 +----------------¦
      заносится в стек содержимое IP,                 ¦     dispH      ¦
      слово,  адресуемое   операндом,                 +----------------+
       загружается в  IP, а следующее
       слово - в регистр CS.

###  Команда RET ############################################################

 ### Возвращает  управление  вызывающей  программе.  Команда возврата - это
 косвенный  переход, т.к.  адрес  перехода  извлекается  из  вершины  стека.
     Команда  возврата  с  операндом-константой   дополнительно  прибавляет,
 содержащееся в ней данное,  к указателю стека  SP, что упрощает возврат из
 подпрограмм, параметры которых передаются в стеке.

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

 ### Форматы команды:
                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ RET                     ¦ t = 8 тактов           ¦    0011010 w   ¦
    +-------------------------+                        +----------------+
     Возврат типа NEAR:
      слово из стека помещается в  IP,
      содержимое SP увеличивается на 2
                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ RET                     ¦ t = 18 тактов          ¦    0011010 w   ¦
    +-------------------------+                        +----------------+
     Возврат типа FAR:
      слово из стека помещается в  IP,
      содержимое SP увеличивается на 2
      слово из стека помещается в  CS,
      содержимое SP увеличивается на 2
                                                       7                0
    +-------------------------+ l = 3 байта            +----------------+
    ¦ RET  Константа          ¦ t = 12 тактов          ¦    0011010 w   ¦
    +-------------------------+                        ¦----------------¦
     Возврат типа NEAR:                                ¦     dataL      ¦
      слово из стека  помещается в  IP,               ¦----------------¦
      содержимое SP увеличивается на 2                ¦     dataH      ¦
      к  содержимому   SP  добавляется                +----------------+
       значение константы.


                                                       7                0
    +-------------------------+ l = 3 байта            +----------------+
    ¦ RET  Константа          ¦ t = 17 тактов          ¦    0011010 w   ¦
    +-------------------------+                        ¦----------------¦
     Возврат типа FAR:                                 ¦     dataL      ¦
      слово из стека помещается в  IP,                ¦----------------¦
      содержимое SP увеличивается на 2                ¦     dataH      ¦
      слово из стека помещается в  CS,                +----------------+
      содержимое SP увеличивается на 2
      к  содержимому   SP  добавляется
       значение константы.

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

 

 
Интересное в сети
 
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 обязательна. Карта сайта.