Page 198 - 149
P. 198

TITLE (заголовок), яка викликає перехід на наступну сторінку з друком
                   зверху сторінки заголовку програми, введеного програмістом.
                                 9.3  Макрокоманди
                          При  програмуванні  виникає  ситуація,  коли  деяка  група  команд,  з
                   невеликими  модифікаціями  повторюється  в  програмі  декілька  разів.  Цю
                   групу  команд  допускається  виділити  один  раз  як  велику  команду-
                   макрокоманду  з  своєю  мнемонікою,  яка  не  входить  в  систему  команд  МП.
                   Всякий  раз  програма-асемблер  замінює  її  ланцюжком  команд  означених
                   макрокомандою.
                          Розглянемо  загальні  засади  використання  макрокоманд  на  простих
                   прикладах. Нехай в прикладній програмі декілька разів треба передати вміст
                   регістра  (D,E)  в  покажчик  стеку  SP.  Однією  командою  це  здійснити
                   неможливо, оскільки в системі команд МП така команда відсутня. Необхідна
                   передача  реалізується  ланцюжком  команд  XCHG,SPHL,XCHG.  Визначимо

                   приведену послідовність команд як макрокоманду з мнемонікою SPDE:
                       Мітка           Код              Операнд             Коментар
                       SPDE            MACRO                                ; Макрокоманда SPDE
                                       XCHG                                 ; передає вміст (D,E)
                                       SPHL                                 ; в покажчик стеку
                                       XCHG
                                       ENDM
                                       ***
                                       SPDE                                 ; Передати із (D,E) в SP
                                       ***

                                       SPDE                                 ; Передати із (D,E) в SP
                                       ***
                          Підкреслимо,  що  означена  мнемоніка  SPDE  фігурує  в  полі  мітки,  а
                   MACRO  i  ENDM  є  спеціальними  директивами  асемблера.  Після  означення
                   макрокоманду  SPDE  можна  використовувати  як  звичайну  команду,
                   розміщуючи її в полі мнемоніки.
                          Означимо  далі  макрокоманду  SHV,  яка  зсуває  вміст  акумулятора
                   вправо з записом у вільні біти нулів.
                          Число зсувів міститься в регістрі D:
                       Мітка           Код              Операнд         Коментар
                       SHV             MACRO
                       LOOP:           RRC                              ;Макрокоманди SHV простого

                                       ANI              7FH             ; зсуву
                                       DCR              D               ; акумулятора вправо
                                       JNZ              LOOP            ; Константа зсуву в
                                       ENDM                             ; регістрі D
                          Наступний  фрагмент  показує  використання  даної  макрокоманди  для
                   зсуву вправо вмісту комірки ІТЕМ на три біти:




                                                                                                             199
   193   194   195   196   197   198   199   200   201   202   203