Page 211 - 149
P. 211

На  рисунку  10.5  представлена  архітектура  системи  програмування,
                  засоби описання алгоритмів і програм якої забезпечують можливість ведення
                  програмування  на  декількох  мовах  високого  рівня,  але  на  відміну  від  вже
                  розглянутої вище системи засоби компіляції і трансляції формують об’єктні
                  модулі, вміст яких не відповідає кодам цільового МП. Компілятори, в цьому

                  випадку,  формують  об’єктні  модулі  на  проміжній  абстрактній  мові.  Засоби
                  редагування  зв’язків  і  компоновки  об’єднують  окремі  об’єктні  модулі  МП-
                  програми  і  формують  єдиний  модуль  на  проміжній  мові.  Відлагодження
                  завантажувального  модуля  забезпечується  використанням  символічних
                  відлагоджувачів.          Після        завершення          процесу         відлагодження,
                  завантажувальний модуль МП-програми транслюється в коди цільового МП.

                                          10.2.2 Засоби трансляції і компіляції
                         Асемблери
                         Асемблер- це програма, яка переводить вихідну програму, написану на
                  мові  асемблера,  в  еквівалентну  їй  об’єктну  програму  цільового  МП.  За
                  принципом  формування  об’єктної  програми  розрізняють  абсолютні  та
                  переміщувані  асемблери.  Абсолютний  асемблер  в  результаті  своєї  роботи
                  формує  об’єктну  програму  цільового  МП,  налаштовану  на  певну  ділянку
                  адресного простору. Для переналагодження об’єктної програми (ОП) в нову
                  область      адресного       простору      необхідне       повторне       асемблерування.
                  Результатом  роботи  переміщуваного  асемблера  є  ОП  цільового  МП  у
                  відносних адресах, тобто забезпечується можливість переміщення ОП в будь-
                  яку область адресного простору цільового МП. Подальше налагодження ОП
                  засобами       редактора      зв’язків.     Тому      ефективним        є    використання
                  непереміщуваного асемблера.
                         Розглянемо  принцип  побудови  переміщуваного  асемблера.  Треба
                  підкреслити, що для формування ОП асемблеру необхідна повна інформація
                  про положення оброблюваної команди відносно початку програми, а також
                  характеристика  операндів  команди.  Враховуючи,  що  обробка  записів
                  вихідного  тексту  здійснюється  послідовно,  асемблер  в  деяких  випадках  не
                  має  всіх  даних  по  оброблюваній  команді.  Тому  реалізація  асемблерів
                  передбачає  наявність  двох  проходів  вихідного  тексту  програми,  а  якщо  в
                  складі асемблера є засоби макрогенерації, то число проходів рівне трьом.
                         На  рисунку  10.6  показана  функціональна  схема  двопрохідного
                  (двопроглядового) асемблера.
                         Вхідними  даними  для  першого  проходу  є  вихідний  текст  МП-
                  програми, таблиця псевдооперацій і таблиця машинних кодів, тобто команд
                  цільового МП. Вихідними даними першого проходу є таблиця символів, яка
                  містить:
                                   *                            поле  “мітка”,  для  збереження  мітки
                                   команди;






                                                                                                             190
   206   207   208   209   210   211   212   213   214   215   216