Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Ассемблер Печать
 
Программисты уже были знакомы с понятием подпрограммы: Грейс Хоппер и ее коллеги применяли подпрограммы на гарвардском «Марке-1» во время второй мировой войны, однако каждая подпрограмма решала свою специфическую задачу.

Подпрограммами называются независимые фрагменты компьютерной программы, используемые многократно и вызываемые из главной программы в случае необходимости. Например, одна подпрограмма может вычислять квадратный корень, а другая заставит компьютер вывести на дисплей литеру.

Первые программисты почти всегда имели блокноты с записью наиболее употребляемых подпрограмм, чтобы в случае необходимости не составлять их заново. Проблема состояла в том, что адреса расположения команд и переменных подпрограммы в памяти менялись в зависимости от ее размещения в последней. Настройка подпрограмм на определенное место в памяти, очевидно, нуждалась в автоматизации, и впервые это было сделано на «Эдсаке». Программисты Кембриджа начали с написания набора унифицированных подпрограмм, которые и образовали библиотеку. После этого достаточно было ввести лишь короткую команду - и компьютер проделывал всю работу по настройке и размещению подпрограммы внутри программы.

Морис Уилкс назвал мнемоническую схему для «Эдсака» и библиотеку подпрограмм собирающей системой (по-английски assembly system - отсюда слово «ассемблер»), поскольку она собирала последовательности подпрограмм.

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

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

Языки ассемблера используются и в настоящее время, поскольку тесно связаны с машиной; действительно, язык ассемблера - это машинно-зависимый язык, спроектированный так, чтобы он соответствовал набору машинных команд, заложенных в центральный процессор конкретного компьютера.

Поэтому язык ассемблера любят те программисты, которые стремятся сжать свои программы до минимального размера, что позволяет выполнять их максимально быстро и эффективно. Именно по этим причинам ассемблер идеально подошел для программирования телеметрической системы, использованной в экспедиции поиска «Титаника» для передачи сигналов между рубкой управления надводного корабля и подводным аппаратом.

Однако ассемблер имеет и недостатки. Поскольку он ближе к языку машины, чем к естественному языку, то весьма труден для работы. Тот, кто пишет на языке ассемблера, должен быть близко знаком с работой компьютера. Например, должен знать шаги, которые выполняет компьютер при сложении двух чисел.

Более того, поскольку ассемблер машинно-зависим, программа, написанная на ассемблере одного компьютера, абсолютно непонятна компьютеру другого типа.

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