Программирование на языке Ассемблера

     Почему  вас  могло  бы  заинтересовать  программирование  на языке

    ассемблера?  Cегодня  повсюду  используются  такие языки  высокого

    уровня как Бэйсик, Фортран и Паскаль  . Возможно, вы уже знакомы по

    крайней  мере с  одним языком  высокого уровня.  Если вы  постоянно

    пльзуютесь      персональным   компьютером  IBM,  то   вы  знаете,  что

    интерпритатор  Бэйсика является  частью системы.  Зачем же возиться

    еще  с одним  языком программирования,  тем более  с таким, который

    сулит определенные      трудности? Очевидно, даже  располагая современ-

    ными могучими языками, вы все еще нуждаетесь в ассемблере из-за его

    эффективности и точности.

       Ассемблерные  программы  могут  быть  очень  эффективными.  Из

    программистов,  с равными  навыками и  способностями, работающий на

    языке  ассемблера  создаст      программу  более  компактную  и быстро-

    действущую, чем  такая же программа,  написанная на языке  высокого

    уровня.  Это  так  практически   для  всех      небольших  или      средних

    программ. К  сожалению, по мере возрастания  размеров, программы на

    языке  ассемблера теряют  часть своих  преимуществ. Это  происходит

    из-за необходимого в ассемблерной  программе внимания к деалям. Как

    вы      увидите, язык  ассемблера требует  от вас  планирования каждого

    действия компьютера.  В небольших программах  это позволяет оптими-

    зировать работу  программы с аппаратными  средствами. В больших  же

    программах      огромное количество  деталей может  помешать вам эффек-

    тивно работать над самой программой, даже если отдельные компоненты

    программы окажутся очень неплохими. Безусловно, программирование на

    языке ассемблера отвечает потребностям не каждой программы.

       Программы на языке ассемблера очень точны. Поскольку этот язык

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

    обеспечением, ассемблерная программа может делать то, что недоступ-

    но никакой      другой программе .  Несомненно, что в  программировании

    устройств  ввода-вывода,  где  требуется  контроль      над  отдельными

    разрядами      регистров   устроиства,   программирование   на   языке

    ассемблера - единственный подходящий выбор.

       Ясно,      что  эффективность  и  точность  языка      ассемблера дают

    определенные  преимущества.  Но  его  детализированность  создает и

    некоторые  проблемы. Когда же стоит  избирать для программирования

    язык ассемблера?

       Конечно   вы      должны      пользоваться      программами   на  языке

    ассемблера, когда нет другого способа написать программу. Например,

    программисты фирмы IBM писали  с использованием процедур ассемблера

    все программы управления устройствами  ввода-вывода для IBM PC. Для

    управления  устройствами  ввода-вывода   и  системой   прерываний,

    потребовалась  та  точность  языка ассемблера  которую  не  может

    обеспечить      ни один  другой язык  программирования. Аналогично,  на

    языке  ассемблера  в  фирме  IBM  писались      процедуры  диагностики,

    которые должны проверять каждую деталь аппаратуры.

      Язык ассемблера необходим также и в тех случаях, когда главными

    являются  рабочие  характеристики  програмы.  Это  может быть время

    исполнения или конечный размер программы. Библиотека математических

    процедур  Фортрана -  пример программы,  требующей хороших характе-

    ристик  как  в  отношении  времени,  так  и размера. Математические

    процедуры являтся  частью любой программы на  Фортране, поэтому они

    должны занимать  как можно меньше места.  Кроме того, эти процедуры

    управляют всеми математическими функциями в фортрановской программе

    и часто используются. Следовательно, они должны исполняться быстро.

      Какая программа  не подходит для языка      ассемблера? Конечно, вы

    можете написать на нем любую программу, однако с большой программой

    лучше  работать  в      языке  высокого  уровня,  таком  как Бэйсик или

    Паскаль. Эти языки позволяют вам сосредоточиться на своей проблеме.

    Вам   не  приходится   непосредственно  иметь   дело  с  тонкостями

    аппаратного  оборудования  и   процессора.      Языки  высокого  уровня

    позволяют вам отступить назад и за деревьями увидеть лес.

       Очевидно далее, что вы  нуждаетесь в соединении программ языка

    ассемблера с  программами языков высокого уровня.  Эдесь мы ограни-

    чимся  программированием на  языке      ассемблера  для тех  задач, для

    которых  он хорошо      подходит, таких  как управление вводом-выводом.

    Заключительная же  глава книги посвящена  прямо проблеме соединения

    программ на языке ассемблера с другми языками программирования. Эти

    методы  предоставляют вам  все лучшее,  что есть  в обоих мирах. Вы

    можете,  когда  необходимы точность и эффективность,  использовать

    процедуры  на языке  ассемблера -  и процедуры  высокого уровня для

    программы в целом. Все что вы для этого должны сделать - сцепить их

    вместе.

       И  последняя причина  для изучения  программирования на  языке

    ассемблера.  Только   через  написание  программ   на  этом  уровне

    детализации вы  можете понять как  работает машина на  самом нижнем

    уровне.  Если вы  хотите узнать  о компьютере  все, вы  должны быть

    знакомы с его языком ассемблера. Единственный способ добиться этого

    - писать программы на этом языке. Простое чтение этой книги дела не

    сдвинет.