Page 236 - 4505
P. 236

Але  процес  написання  програми  на  машинній  мові  дуже  трудомісткий  і  утомливий.
               Програма  виходить  громіздкою,  важкооглядовою,  її  важко  відлагоджувати,  змінювати  і
               розвивати.
                     Тому  у  разі,  коли  потрібно  мати  ефективну  програму,  яка  в  максимальному  ступені
               враховує специфіку конкретного комп'ютера, замість машинних мов використовують близькі до
               них машино-орієнтовані мови (асемблери).


                     Мова асемблера
                     Мова асемблера — це машино-залежна мова низького рівня, в якому короткі мнемонічні
               імена  відповідають  окремим  машинним  командам.  Використовується  для  представлення  в
               легкій для читання формі програм, записаних в машинному коді.
                     Мова асемблера дозволяє програмістові користуватися текстовими мнемонічними (тобто
               що легко запам'ятовуються людиною) кодами, на свій розсуд привласнювати символічні імена
               регістрам комп'ютера і пам'яті, а також задавати зручні для себе способи адресації. Крім того,
               він  дозволяє  використовувати  різні  системи  числення  (наприклад,  десяткову  або
               шістнадцетерічну) для уявлення числових констант, використовувати в програмі коментарі і ін.
                     Програми, написані на мові асемблера, вимагають значно меншого об'єму пам'яті  і часу
               виконання.  Знання  програмістом  мови  асемблера  і  машинного  коду  дає  йому  розуміння
               архітектури  машини.  Не  дивлячись  на  те,  що  більшість  фахівців  в  області  програмного
               забезпечення  розробляють  програми  на  мовах  високого  рівня,  таких,  як  Object  Pascal  або  C,
               найбільш могутнє і ефективне програмне забезпечення повністю або частково написане на мові
               асемблера.
                     Мови  високого  рівня  були  розроблені  для  того,  щоб  звільнити  програміста  від  обліку
               технічних особливостей конкретних комп'ютерів, їх архітектури. В протилежність цьому, мова
               асемблера розроблена з метою врахувати конкретну специфіку процесора. Отже, для того, щоб
               написати  програму  на  мові  асемблера  для  конкретного  комп'ютера,  важливо  знати  його
               архітектуру.
                     Як  приклад  приведемо  програму  на  мові  асемблера  для  IBM  РС.  Програма  обчислює
               значення а = b + з для цілих а, b і з:

                                                          Директива   .MODEL   задає механізм розподілу
                                      .MODEL  SMALL    пам'яті      під        дані        і        команди.
                                          .DATA
                                                     Директива     .DATA     визначає  початок  ділянки
                    b              DW        5
                                                     програми                    з                   даними.
                    c              DW        3
                                                     Директиви   DW  задають типи змінних і їх значення.
                    a              DW        ?       Директива     .CODE     визначає  початок  ділянки
                                          .CODE      програми                  з                 командами.
                    begin     MOV     AX,@DATA
                                                     Команди     MOV     Ax,@data     і     MOV        Ds,ax
                                   MOV        DS,AX
                                                     записують  адресу  сегменту  даних  в  регістр
                                   MOV        AX,B    DS                         (Data             Segment).
                                   ADD        AX,C    Для обчислення а використовуються команди   MOV
                                   MOV        A,AX       AX,  B,     ADD        AX,  C     і     MOV        A,  AX.
                                   MOV        AH,4CH
                                                     У директиві   END   задана мітка першої виконуваної
                                   INT           21H
                                                     програми програми begin.
                              END     begin
                     Переклад  програми  з  мови  асемблера  на  машинну  мову  здійснюється  спеціальною
               програмою, яка називається асемблером і є, по суті, простим транслятором.
                     Переваги алгоритмічних мов перед машинними
                     Основні переваги такі:
                     алфавіт  алгоритмічної  мови  значно  ширший  за  алфавіт  машинної  мови,  що  істотно
               підвищує наочність тексту програми;

                                                                      232
   231   232   233   234   235   236   237   238   239   240   241