Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

Гостевая книга

От автора

Когда следует применять ассемблер 

              Большинство программистов  используют  ассемблер  только при
         крайней необходимости,  поскольку программировать  на  ассемблере
         достаточно сложно. Общее правило заключается в том, что вообще не
         следует использовать ассемблер - он создает слишком  много  проб-
         лем. Однако можно указать два случая практического применения ас-
         семблера. Первый возникает когда нет другого пути решения задачи.
         Например,  когда  требуется  обеспечить  непосредственную связь с
         оборудованием,  управление которым не предусмотрено в языке Турбо
         Паскаль.
              Во-вторых, такая ситуация возникает при необходимости умень-
         шения  времени  выполнения программ и все возможности оптимизации
         кода Турбо Паскаля исчерпаны.  В данном случае необходимо  делать
         тщательный  выбор функций для их кодирования на ассемблере.  Если
         выбор будет сделан неправильно,  то эффект будет  незначительный.
         При правильном выборе эффект может быть очень большим.  Для того,
         чтобы определить какие подпрограммы требуют перекодировки,  необ-
         ходимо определить операционную блок-схему вашей программы. Обычно
         для реализации на ассемблере выбираются подпрограммы, которые ис-
         пользуются  внутри  циклов,  поскольку они выполняются много раз.
         Кодирование на ассемблере процедуры или функции, которые выполня-
         ются один или два раза,  может не дать заметного эффекта, а коди-
         рование на ассемблере функции, которая выполняется много раз, мо-
         жет дать такой эффект.  Например, рассмотрим следующую процедуру:
              procedure ABC;
              var
                t: integer;

              begin
                init;
                for t:=0 to 1000 do begin
                  phase1;
                  phase2;
                  if t=10 then phase3;
                end;
                byebye;
              end;
              Перекодировка процедур "init" и "byebye" может  не  повлиять
         заметно на скорость выполнения программы,  поскольку они выполня-
         ются только один раз.  Процедуры "phase1" и "phase2"  выполняются
         1000 раз и их перекодировка несомненно даст заметный эффект. Нес-
         мотря на то, что процедура "phase3" расположена внутри цикла, она
         выполняется  лишь один раз и поэтому ее перекодировка не даст эф-
         фекта.
              При тщательном выборе процедур для их кодировки на ассембле-
         ре можно добиться улучшения быстродействия программы за счет  пе-
         рекодировки лишь небольшого числа подпрограмм.

(с)Все права защищены

По всем интересующим вопросампрошу писать на электронный адрес

    Rambler's Top100 PROext: Top 1000
    Rambler's Top100 Яндекс цитирования
Hosted by uCoz