Page 23 - 4989
P. 23

синтаксис  Intel,  що  використовується  у  програмуванні  під  ОС
                  Windows,  та  синтаксис  AT&T,  що  використовується  в  Unix-
                  подібних ОС, зокрема в ОС Linux. У нашому курсі розглядається
                  лише синтаксис Intel.

                        Згідно  з  синтаксисом  Intel,  інструкції  записують  в
                  наступному форматі:
                        <мнемоніка> [операнд-призначення] [, операнд-джерело]

                        Мнемоніка  –  це  символьне  позначення  інструкції.  Зазвичай
                  мнемоніка являє собою скорочене позначення англійської назви
                  операції,  наприклад  MOV  –  пересилка  даних  (від  move  –
                  переміщувати),  ADD  –  додавання  (від  add  –  додати),  XCHG  –

                  обмін (від exchange – обмінювати).
                        Операнд – це дані, над якими виконується операція. Операнд-
                  призначення  –  це  операнд,  у  якому  буде  збережений  результат.

                  Операнд-джерело – це операнд, який використовується в операції
                  в режимі читання. Наприклад:
                        MOV EAX, 5

                        У цій інструкції число 5 заноситься у регістр ЕАХ.
                        ADD EAX, ЕВХ
                        У  цій  інструкції  додається  вміст  регістрів  ЕАХ  та  ЕВХ  і

                  результат заноситься в ЕАХ.
                        Більшість  інструкцій  асемблера  х86  мають  один  або  два
                  операнди. Є невелика кількість інструкцій з трьома операндами.
                  Також  є  інструкції  без  операндів,  наприклад,  інструкція

                  повернення з підпрограми:
                        RET
                        Якщо        операндів        більше        одного,        вони      обов’язково

                  розділюються комою.
                        Операндами можуть бути:
                        - регістри;
                        - комірки пам’яті в сегменті даних або стеку;

                        - адреси  у  кодовому  сегменті  (для  команд  передачі
                           управління)
                        - константи (безпосередні операнди), що містяться у команді

                           (тільки в якості операнда-джерела).








                                                                 23
   18   19   20   21   22   23   24   25   26   27   28