Программы на языке ассемблера очень точны. Поскольку этот язык позволяет программисту непосредственно работать со всем аппаратным обеспечением, ассемблерная программа может делать то, что недоступно никакой другой программе . Несомненно, что в программировании устройств ввода-вывода, где требуется контроль над отдельными разрядами регистров устройства, программирование на языке ассемблера - единственный подходящий выбор.
Ясно, что эффективность и точность языка ассемблера дают определенные преимущества. Но его детализированность создает и некоторые проблемы. Когда же стоит избирать для программирования язык ассемблера?
Конечно вы должны пользоваться программами на языке ассемблера, когда нет другого способа написать программу. Например, программисты фирмы IBM писали с использованием процедур ассемблера все программы управления устройствами ввода-вывода для IBM PC. Для управления устройствами ввода-вывода и системой прерываний, потребовалась та точность языка ассемблера которую не может обеспечить ни один другой язык программирования. Аналогично, на языке ассемблера в фирме IBM писались процедуры диагностики, которые должны проверять каждую деталь аппаратуры.
Язык ассемблера необходим также и в тех случаях, когда главными являются рабочие характеристики программы. Это может быть время исполнения или конечный размер программы. Библиотека математических процедур Фортрана - пример программы, требующей хороших характеристик как в отношении времени, так и размера. Математические процедуры являться частью любой программы на Фортране, поэтому они должны занимать как можно меньше места. Кроме того, эти процедуры управляют всеми математическими функциями в фортрановской программе и часто используются. Следовательно, они должны исполняться быстро.
Какая программа не подходит для языка ассемблера? Конечно, вы можете написать на нем любую программу, однако с большой программой лучше работать в языке высокого уровня, таком как Бэйсик или Паскаль. Эти языки позволяют вам сосредоточиться на своей проблеме. Вам не приходится непосредственно иметь дело с тонкостями аппаратного оборудования и процессора. Языки высокого уровня позволяют вам отступить назад и за деревьями увидеть лес.
Очевидно далее, что вы нуждаетесь в соединении программ языка ассемблера с программами языков высокого уровня. Здесь мы ограничимся программированием на языке ассемблера для тех задач, для которых он хорошо подходит, таких как управление вводом-выводом. Заключительная же глава книги посвящена прямо проблеме соединения программ на языке ассемблера с другими языками программирования. Эти методы предоставляют вам все лучшее, что есть в обоих мирах. Вы можете, когда необходимы точность и эффективность, использовать процедуры на языке ассемблера - и процедуры высокого уровня для программы в целом. Все что вы для этого должны сделать - сцепить их вместе.
И последняя причина для изучения программирования на языке ассемблера. Только через написание программ на этом уровне детализации вы можете понять как работает машина на самом нижнем уровне. Если вы хотите узнать о компьютере все, вы должны быть знакомы с его языком ассемблера. Единственный способ добиться этого - писать программы на этом языке. Простое чтение этой книги дела не сдвинет.