Раздел 2. Ассемблеры

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

Язык ассемблера аппаратно зависим, т.к. в разных аппаратных архитектурах различные программно доступные компоненты: система команд, регистры, способы адресации. Поэтому программы, написанные на языке ассемблера, могут быть перенесены только на ВС той же архитектуры. Программирование на языке ассемблера позволяет в максимальной степени использовать особенности архитектуры ВС, т. к. ассемблерная программа является более эффективной и в смысле быстродействия, и в смысле требований к памяти. Но эта аксиома выполнима только для Intel-архитектур. Для RISC-архитектур это невыполнимо. Для того, чтобы программа могла эффективно выполнятся в ВС с распараллеливанием на уровне команд она должна быть оптимизирована, т.е. команды должны быть расположены в определенном порядке, допускающим их параллельное выполнение.

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

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

Для управления таким устройством создается соответствующий язык команд (JVM, IBMAS/400). Таким образом, любую программу можно представить, как виртуальное железо, решающее конкретную задачу. Интерфейс подобных программ представлен в виде системы команд, а следовательно, необходим соответствующий ассемблер, который смог бы эти программы подготовить для выполнения используемым виртуальным устройством.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: