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

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


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



 ### Команды  условного   перехода - это   близкие   (NEAR)   относительные
 переходы.  Операнд - метка  является  8-битным   смещением   (относительно
 текущего состояния указателя команд  IP),  поэтому команды могут выполнить
 переход только на 127 байт вперед или на 128 байт назад.

 ### Время  выполнения команд равно 4 тактам синхронизации (если переход не
 осуществлен) и 16 тактам (если переход произошел). При этом не учитывается
 время реинициализации очереди команд, которое увеличивает время выполнения
 на 4 такта. Длина команд равна 2 байтам.

###  Переход по результату знакового сравнения ###########################

 ### Команды  осуществляют переход,  если выполнено условие  сравнения двух
 чисел, интерпретированных как знаковые.
     Допустим, арифметические  флажки  установлены  в результате  сравнения
 двух  знаковых  чисел  командой  CMP. Тогда  переход осуществляется, если:

 +-----------------------------------------------------------------------+
 ¦ мнемоника   команд  ¦состояние флажков¦  соотношение  двух  чисел     ¦
 ¦ условного перехода  +-----------------¦                               ¦
 ¦                     ¦  OF ¦  ZF ¦  SF ¦                               ¦
 +---------------------+-----+-----+-----+-------------------------------¦
 ¦    JL / JNGE        ¦  0  ¦  -  ¦  1  ¦ меньше / не больше или равны  ¦
 ¦                     ¦  1  ¦  -  ¦  0  ¦                               ¦
 +---------------------+-----+-----+-----+-------------------------------¦
 ¦    JNL / JGE        ¦  0  ¦  -  ¦  0  ¦ больше или равны / не меньше  ¦
 ¦                     ¦  1  ¦  -  ¦  1  ¦                               ¦
 +---------------------+-----+-----+-----+-------------------------------¦
 ¦    JLE / JNG        ¦  0  ¦  1  ¦  1  ¦ меньше или равны / не больше  ¦
 ¦                     ¦  1  ¦  1  ¦  0  ¦                               ¦
 +---------------------+-----+-----+-----+-------------------------------¦
 ¦    JNLE / JG        ¦  0  ¦  0  ¦  0  ¦ больше / не меньше или равны  ¦
 ¦                     ¦  1  ¦  0  ¦  1  ¦                               ¦
 +-----------------------------------------------------------------------+
 ### Регистр флажков не модифицируется.

 ### Форматы команд:
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JL    Метка             ¦                        ¦    01111100    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JNGE  Метка             ¦                        +----------------+
    +-------------------------+
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JLE   Метка             ¦                        ¦    01111110    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JNG   Метка             ¦                        +----------------+
    +-------------------------+
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JNL   Метка             ¦                        ¦    01110101    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JGE   Метка             ¦                        +----------------+
    +-------------------------+
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JNLE  Метка             ¦                        ¦    01111101    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JG    Метка             ¦                        +----------------+
    +-------------------------+

###  Переход по результату беззнакового сравнения ########################

 ### Команды  осуществляют переход,  если выполнено условие  сравнения двух
 чисел, интерпретированных как беззнаковые.
     Допустим, арифметические  флажки  установлены  в результате  сравнения
 двух беззнаковых чисел  командой  CMP. Тогда переход осуществляется, если:

 +-----------------------------------------------------------------------+
 ¦ мнемоника   команд  ¦состояние флажков¦  соотношение  двух  чисел     ¦
 ¦ условного перехода  +-----------------¦                               ¦
 ¦                     ¦   CF   ¦   ZF   ¦                               ¦
 +---------------------+--------+--------+-------------------------------¦
 ¦    JB / JNAE /      ¦   1    ¦   -    ¦  ниже / не выше или равны /   ¦
 ¦    JC               ¦        ¦        ¦  есть перенос                 ¦
 +---------------------+--------+--------+-------------------------------¦
 ¦    JBE / JNA        ¦   1    ¦   0    ¦  ниже или равны / не выше     ¦
 ¦                     ¦   0    ¦   1    ¦                               ¦
 ¦                     ¦   1    ¦   1    ¦                               ¦
 +---------------------+--------+--------+-------------------------------¦
 ¦    JNB / JAE /      ¦   0    ¦   -    ¦  выше или равны / не ниже /   ¦
 ¦    JNC              ¦        ¦        ¦  нет переноса                 ¦
 +---------------------+--------+--------+-------------------------------¦
 ¦    JNBE / JA        ¦   0    ¦   0    ¦  выше / не ниже или равны     ¦
 +-----------------------------------------------------------------------+

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

 ### Форматы команд:
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JB    Метка             ¦                        ¦    01110010    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JNAE  Метка             ¦                        +----------------+
    +-------------------------+
    +-------------------------+
    ¦ JC    Метка             ¦
    +-------------------------+
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JBE   Метка             ¦                        ¦    01110110    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JNA   Метка             ¦                        +----------------+
    +-------------------------+
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JNB   Метка             ¦                        ¦    01110011    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JAE   Метка             ¦                        +----------------+
    +-------------------------+
    +-------------------------+
    ¦ JNC   Метка             ¦
    +-------------------------+
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JNBE  Метка             ¦                        ¦    01110111    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JA    Метка             ¦                        +----------------+
    +-------------------------+

###  Переход по состоянию отдельных флажков ##############################

 ### Команды проверяют  состояние соответствующего флажка  и, в зависимости
 от равенства его 0 или 1, осуществляют переход.

     +-------------------------------------------------------------------+
     ¦ мнемоника  ¦ состояние флажков ¦         комментарий              ¦
     ¦  команды   +-------------------¦                                  ¦
     ¦            ¦ OF ¦ ZF ¦ PF ¦ SF ¦                                  ¦
     +------------+----+----+----+----+----------------------------------¦
     ¦  JE / JZ   ¦ -  ¦ 1  ¦ -  ¦ -  ¦  равно / нуль                    ¦
     +------------+----+----+----+----+----------------------------------¦
     ¦  JP / JPE  ¦ -  ¦ -  ¦ 1  ¦ -  ¦  есть паритет / паритет четный   ¦
     +------------+----+----+----+----+----------------------------------¦
     ¦  JO        ¦ 1  ¦ -  ¦ -  ¦ -  ¦  есть переполнение               ¦
     +------------+----+----+----+----+----------------------------------¦
     ¦  JS        ¦ -  ¦ -  ¦ -  ¦ 1  ¦  есть знак                       ¦
     +------------+----+----+----+----+----------------------------------¦
     ¦  JNE / JNZ ¦ -  ¦ 0  ¦ -  ¦ -  ¦  не равно / не нуль              ¦
     +------------+----+----+----+----+----------------------------------¦
     ¦  JNP / JPO ¦ -  ¦ -  ¦ 0  ¦ -  ¦  нет паритета / паритет нечетный ¦
     +------------+----+----+----+----+----------------------------------¦
     ¦  JNO       ¦ 0  ¦ -  ¦ -  ¦ -  ¦  нет переполнения                ¦
     +------------+----+----+----+----+----------------------------------¦
     ¦  JNS       ¦ -  ¦ -  ¦ -  ¦ 0  ¦  нет знака                       ¦
     +-------------------------------------------------------------------+

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

 ### Форматы команд:
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JE    Метка             ¦                        ¦    01110100    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JZ    Метка             ¦                        +----------------+
    +-------------------------+
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JNE   Метка             ¦                        ¦    01111000    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JNZ   Метка             ¦                        +----------------+
    +-------------------------+
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JP    Метка             ¦                        ¦    01110110    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JPE   Метка             ¦                        +----------------+
    +-------------------------+
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JPO   Метка             ¦                        ¦    01111011    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ JNP   Метка             ¦                        +----------------+
    +-------------------------+
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JO    Метка             ¦                        ¦    01111010    ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦      dispL     ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JNO   Метка             ¦                        ¦    01110001    ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦      dispL     ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JS    Метка             ¦                        ¦    01110000    ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦      dispL     ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+                        +----------------+
    ¦ JNS   Метка             ¦                        ¦    01111001    ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦      dispL     ¦
                                                       +----------------+

###  Команда JCXZ#########################################################

 ### Осуществляет  переход,  если  регистр  СХ  равен  0. Используется для
 обхода  цикла  в  случаях,  когда  счетчик  циклов  равен  нулю.

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

 ### Формат команды:
                                                       7                0
    +-------------------------+ l =  2 байта           +----------------+
    ¦ JCXZ  Метка             ¦ t =  6 тактов (без     ¦    11100001    ¦
    +-------------------------+        перехода)       ¦----------------¦
                                t = 18 тактов (с       ¦      dispL     ¦
                                       переходом)      +----------------+

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

 

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