98
Использование
машинно-зависимых языков предполагает знание
особенностей реализации технических решений, реализованных в кон-
кретных компьютерах. К этой группе языков в первую очередь относятся
машинные языки, являющиеся внутренними языками конкретных процес-
соров, не требующими каких-либо преобразований перед их исполнением.
Команды машинных языков представляют собой многоразрядные кодовые
комбинации в двоичной системе счисления (определенной машинной ко-
манде соответствует конкретный код из 0 и 1), непосредственно подавае-
мые на шину процессора при их выполнении. Программирование на ма-
шинных языках отличается высокой трудоемкостью, поэтому оно приме-
нялось на ЭВМ первого поколения ввиду отсутствия других языков про-
граммирования. К машинно-зависимым языкам относятся также языки
программирования семейства
ассемблеров. Каждая команда языка ас-
семблера фактически представляет машинную команду в виде условных,
символьных обозначений, называемых мнемониками. В основном, назва-
ние команды ассемблера представляет собой сокращенное обозначение на
английском языке операции, реализуемой этой команды. До непосредст-
венного выполнения на компьютере написанная на языке ассемблер про-
грамма с помощью специальной программы-транслятора
должна быть
преобразована в программу в машинных кодах. Поскольку процессоры
различных моделей имеют отличающие наборы команд, то, соответст-
венно, отличаются и их языки ассемблеры. Следовательно, написанная
на языке ассемблер программа будет работоспособна только на процессо-
рах определенных моделей.
Языки семейства ассемблеров относятся к языкам низкого уровня,
для которых характерны возможности создания
эффективных и компакт-
ных программ, поскольку программист имеет непосредственный доступ к
аппаратным ресурсам компьютера (процессору, основной и внешней па-
мяти, контроллерам и др.). В настоящее время ассемблер, как правило,
используют при написании небольших системных приложений, драйверов
(программ, управляющих взаимодействием внешних устройств с процес-
сором и с ОЗУ), отдельных процедур обработки
данных и др. Как и для
других языков программирования, для ассемблеров написан ряд библио-
тек, в которых реализованы процедуры различных видов обработки дан-
ных, что способствует ускорению процесса разработки программ. Многие
языки программирования высокого уровня позволяют вставлять в разраба-
тываемые на их основе программы отдельные модули, написанные на язы-
ке
ассемблер.
Машинно-независимые языки программирования или, по-
другому, - языки высокого уровня не требуют от программистов при на-
писании программ знания особенностей организации конкретных компью-
теров, на которых эти программы будут выполняться. Основной целью
создания языков высокого уровня явилась необходимость обеспечения