Page 29 - 4989
P. 29

початкової адреси масиву arr та регістру еdi.
                        Операнди команди MOV повинні мати однакову розмірність.
                  Наприклад,  недопустимими  є  команди  MOV  AX,BH  або
                  MOV BX,VAR  при  розрядності  змінної  VAR,  відмінної  від  2

                  байт.  Якщо  все  ж  необхідно  скопіювати  певну  кількість  байт
                  незалежно         від      розрядності         змінної,       слід     застосовувати
                  модифікатори  BYTE  PTR/WORD  PTR/DWORD  PTR  для

                  позначення відповідно 1-, 2- та 4-байтового операнда. Наприклад:
                        MOV BX, DWORD PTR VAR
                        Цей модифікатор також слід застосовувати, якщо із команди
                  незрозуміло,  скільки  байт  слід  скопіювати.  Наприклад,  команда

                  MOV [EBX], 10 невірна, оскільки невідома розрядність константи
                  10. Слід написати, наприклад
                        MOV WORD PTR [EBX], 10

                        Командою MOV не може бути виконана пересилка із комірки
                  пам’яті  у  комірку  пам’яті.  Наприклад,  якщо  Х  та  Y  –  це  деякі
                  змінні, то команда MOV X,Y  буде невірною.



                        3.3.2  Логічні команди. Флаги


                        Логічні команди виконують порозрядні логічні операції між
                  операндами,  тобто,  наприклад,  при  виконанні  команди
                  AND AL,BL операція "логічне І" виконується окремо над кожним
                  із 8 бітів регістрів AL і BL.

                        По  результатах  виконання  більшості  логічних  команд
                  встановлюються флаги нуля ZF, парності PF та знаку SF. Флаги –
                  це  окремі  біти  в  регістрі  флагів  мікропроцесора  EFLAGS,  які

                  встановлюються  в  "1"  при  наявності  деякої  ознаки  у  результаті
                  виконання  арифметичних  або  логічних  команд  та  в  "0"  при  її
                  відсутності.  На  рис.  3.1  показано  регістр  FLAGS  (молодші  2
                  байти регістру EFLAGS).


                  -  NT  IOPL1  IOPL0  OF  DF  IF  TF  SF  ZF  -  AF  -  PF  -  CF

                         Рисунок 3.1 – Регістр FLAGS ("-" – біт не використовується)







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