Главная Программирование Софт Документы Статьи Обо мне


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



###  Команда  AND #########################################################

 ### Реализует  поразрядно  булевую +------------------------------------+
     функцию И (конъюнкцию). Второй ¦ бит 1 ¦ бит 2 ¦ бит 1  AND  бит 2  ¦
     операнд выполняет  роль маски. +-------+-------+--------------------¦
     Результат  заносится на  место ¦   0   ¦   0   ¦        0           ¦
     первого операнда.              ¦   0   ¦   1   ¦        0           ¦
                                    ¦   1   ¦   0   ¦        1           ¦
                                    ¦   1   ¦   1   ¦        1           ¦
                                    +------------------------------------+

 ### Флажки  OF   и   CF  всегда   переводятся  в  нулевое  состояние,  т.к.
 межразрядные  связи  отсутствуют.  Флажки  SF,  ZF и  PF устанавливаются в
 зависимости   от   полученного   результата   (по правилам  арифметических
 операций). Состояние флажка AF не определено.

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

                                                       7                0
    +-------------------------+ l = 3-4 байта          +----------------+
    ¦ AND  Регистр, Константа ¦ t = 4 такта            ¦   100000 s w   ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 3-6 байта          ¦  mod 100  r/m  ¦
    ¦ AND  Память,  Константа ¦ t = 17+ЕА тактов       ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
                                                       ¦----------------¦
                                                       ¦     dispH      ¦
                                                       ¦----------------¦
                                                       ¦     dataL      ¦
                                                       ¦----------------¦
                                                       ¦     dataH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 2-3 байта          +----------------+
    ¦ AND  Аккумул., Константа¦ t = 4 такта            ¦   0010010  w   ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦     dataL      ¦
                                                       ¦----------------¦
                                                       ¦     dataH      ¦
                                                       +----------------+

 ### Примечание:
     Используется   для  перевода  в  нулевое  состояние  тех  бит  первого
 операнда,  которые  определяются  маской,  содержащей нули  в сбрасываемых
 битах  и  единицы  в  остальных.

###  Команда  OR #########################################################

 ### Реализует  поразрядно булевую  +------------------------------------+
     функцию   ИЛИ   (дизъюнкцию).  ¦ бит 1 ¦ бит 2 ¦ бит 1   OR  бит 2  ¦
     Второй  операнд  играет  роль  +-------+-------+--------------------¦
     маски. Результат заносится на  ¦   0   ¦   0   ¦        0           ¦
     место первого операнда.        ¦   0   ¦   1   ¦        1           ¦
                                    ¦   1   ¦   0   ¦        1           ¦
                                    ¦   1   ¦   1   ¦        1           ¦
                                    +------------------------------------+

 ### Флажки  OF   и   CF  всегда   переводятся  в  нулевое  состояние,  т.к.
 межразрядные  связи  отсутствуют.  Флажки  SF,  ZF и  PF устанавливаются в
 зависимости   от   полученного   результата   (по правилам  арифметических
 операций). Состояние флажка AF не определено.

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

                                                       7                0
    +-------------------------+ l = 3-4 байта          +----------------+
    ¦ OR   Регистр, Константа ¦ t = 4 такта            ¦   100000 s w   ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 3-6 байта          ¦  mod 001  r/m  ¦
    ¦ OR   Память,  Константа ¦ t = 17+ЕА тактов       ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
                                                       ¦----------------¦
                                                       ¦     dispH      ¦
                                                       ¦----------------¦
                                                       ¦     dataL      ¦
                                                       ¦----------------¦
                                                       ¦     dataH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 2-3 байта          +----------------+
    ¦ OR  Аккумул., Константа ¦ t = 4 такта            ¦   0000110  w   ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦     dataL      ¦
                                                       ¦----------------¦
                                                       ¦     dataH      ¦
                                                       +----------------+
 ### Примечание:
     Используется  для  установки  в  1 определенных  бит  первого операнда.

###  Команда  XOR #########################################################

 ### Реализует  поразрядно булевую  +------------------------------------+
     функцию    ИСКЛЮЧАЮЩЕЕ    ИЛИ. ¦ бит 1 ¦ бит 2 ¦ бит 1  XOR  бит 2  ¦
     Второй  операнд  играет  роль  +-------+-------+--------------------¦
     маски. Результат заносится на  ¦   0   ¦   0   ¦        0           ¦
     место первого операнда.        ¦   0   ¦   1   ¦        1           ¦
                                    ¦   1   ¦   0   ¦        1           ¦
                                    ¦   1   ¦   1   ¦        0           ¦
                                    +------------------------------------+

 ### Флажки  OF   и   CF  всегда   переводятся  в  нулевое  состояние,  т.к.
 межразрядные  связи  отсутствуют.  Флажки  SF,  ZF и  PF устанавливаются в
 зависимости   от   полученного   результата   (по правилам  арифметических
 операций). Состояние флажка AF не определено.

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

                                                       7                0
    +-------------------------+ l = 3-4 байта          +----------------+
    ¦ XOR  Регистр, Константа ¦ t = 4 такта            ¦   100000 s w   ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 3-6 байта          ¦  mod 110  r/m  ¦
    ¦ XOR  Память,  Константа ¦ t = 17+ЕА тактов       ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
                                                       ¦----------------¦
                                                       ¦     dispH      ¦
                                                       ¦----------------¦
                                                       ¦     dataL      ¦
                                                       ¦----------------¦
                                                       ¦     dataH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 2-3 байта          +----------------+
    ¦ XOR  Аккумул., Константа¦ t = 4 такта            ¦   0011010  w   ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦     dataL      ¦
                                                       ¦----------------¦
                                                       ¦     dataH      ¦
                                                       +----------------+
 ### Примечание:
     Используется  для перевода  регистра  в нулевое состояние,  сравнения
 операндов  на  абсолютное   равенство,  инвертирования  определенных  бит
 операнда с помощью маски.

###  Команда  TEST #########################################################

 ### Реализует  поразрядно  булевую +------------------------------------+
     функцию И (конъюнкцию). Второй ¦ бит 1 ¦ бит 2 ¦ бит 1  AND  бит 2  ¦
     операнд выполняет  роль маски. +-------+-------+--------------------¦
     В отличии   от  AND  результат ¦   0   ¦   0   ¦        0           ¦
     никуда не заносится.           ¦   0   ¦   1   ¦        0           ¦
                                    ¦   1   ¦   0   ¦        1           ¦
                                    ¦   1   ¦   1   ¦        1           ¦
                                    +------------------------------------+

 ### Флажки  OF   и   CF  всегда   переводятся  в  нулевое  состояние,  т.к.
 межразрядные  связи  отсутствуют.  Флажки  SF,  ZF и  PF устанавливаются в
 зависимости   от   полученного   результата   (по правилам  арифметических
 операций). Состояние флажка AF не определено.

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

                                                       7                0
    +-------------------------+ l = 3-4 байта          +----------------+
    ¦ TEST Регистр, Константа ¦ t = 5 тактов           ¦   1111011  w   ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 3-6 байтов         ¦  mod 000  r/m  ¦
    ¦ TEST Память,  Константа ¦ t = 11+ЕА тактов       ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
                                                       ¦----------------¦
                                                       ¦     dispH      ¦
                                                       ¦----------------¦
                                                       ¦     dataL      ¦
                                                       ¦----------------¦
                                                       ¦     dataH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 2-3 байта          +----------------+
    ¦ TEST Аккумул., Константа¦ t = 4 такта            ¦   1010100  w   ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦     dataL      ¦
                                                       ¦----------------¦
                                                       ¦     dataH      ¦
                                                       +----------------+

###  Команда  NOT #########################################################

 ### Инвертирует  биты  операнда, реализуя  поразрядно  унарную  логическую
 функцию НЕ.

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

 ### Форматы команды:
                                                       7                0
    +-------------------------+ l = 2 байта            +----------------+
    ¦ NOT  Регистр            ¦ t = 3 такта            ¦   1111011  w   ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+ l = 2-4 байта          ¦  mod  010  r/m ¦
    ¦ NOT  Память             ¦ t = 16+ЕF тактов       ¦----------------¦
    +-------------------------+                        ¦     dispL      ¦
     Можно  указывать  байт  или слово.                +----------------¦
     При обращении к памяти необходимо                 ¦     dispH      ¦
     использовать   модификаторы  BYTE                 +----------------+
     (байт)   или   WORD (слово),  без
     которых команда неоднозначна.

[   ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ   ]
Сайт создан в системе uCoz