Page 30 - 4989
P. 30

Таблиця 3.2 – Логічні команди

                                                                                   Встановлення
               Команда                              Зміст
                                                                                        флагів
                                      Порозрядне логічне І між
             AND dst, src
                                          операндами src i dst
                                    Порозрядне логічне АБО між
              OR dst, src
                                          операндами src i dst                    ZF, PF, SF – по

                                  Порозрядне виключне АБО між                       результатах
             XOR dst, src
                                          операндами src i dst                         операції
                                      Порозрядне логічне І між                        CF, OF –

                                        операндами src i dst без                  скидаються в 0
            TEST dst, src         збереження результату операції
                                        (використовується для
                                         встановлення флагів)

                                                                                  не встановлює
                NOT dst          Порозрядна інверсія операнда dst
                                                                                        флагів


                  Флаг  ZF  встановлюється  в  "1",  якщо  результат  операції
            нульовий  (інакше  скидається  в  "0").  PF  встановлюється  в  "1",
            якщо  у  молодшому  байті  результату  операції  наявна  парна

            кількість  одиничок.  SF  встановлюється  в  "1",  якщо  результат
            операції  при  інтерпретації  його  як  числа  із  знаком  є  від’ємним
            (про це свідчить "1" у найстаршому – знаковому розряді).

                  Також  у  регістрі  ЕFLAGS  є  флаги,  що  встановлюються  по
            результатах  арифметичних  операцій  і  зсувів  (CF,  OF,  AF)  та
            флаги,  що  встановлюються/скидаються  програмно  і  задають
            певні параметри режиму роботи процесора (DF – напрям обробки

            масивів  рядковими  командами,  IF  –  дозвіл/заборона  апаратних
            переривань, тощо).
                  Команди  AND,  OR,  XOR  часто  використовують  для

            встановлення окремих бітів операнда в 0 або 1 без зміни інших
            бітів.  Для  цього  необхідно  виконати  логічну  функцію  між
            операндом та маскою. Маска  – це число, що визначає, які  саме

            біти будуть встановлені, скинуті чи інвертовані.
                  Для встановлення бітів у 0 використовується команда AND з
            маскою з нулями на місці бітів, що слід скинути, і одиницями в

            усіх  інших  бітах.  Наприклад,  команда  and  al,  01111110b


                                                           30
   25   26   27   28   29   30   31   32   33   34   35