29000 авторов и 62 редактора ответили на 85304 вопроса,
разместив 135251 ссылку на 43450 сайтов, присоединяйтесь!

Что такое ассемблер?

РедактироватьВ избранноеПечать

Ассемблер - это программа для перевода мнемоники команд в машинный код. Дословно "Assembler" переводится как "сборщик", т.е. Ассемблер собирает коды. Язык, на котором записываются инструкции для программы Ассемблер, называется языком Ассемблера.
Команды языка ассемблера один в один соответствуют командам процессора и, фактически, представляют собой удобную символьную форму записи (мнемокод) команд и аргументов. Также, язык ассемблера обеспечивает связывание частей программы и данныx через метки, выполняемое при ассемблировании (для каждой метки высчитывается адрес, после чего каждое вхождение метки заменяется на этот адрес). 

Каждая модель процессора, в принципе, имеет свой набор команд и соответствующий ему язык (или диалект) ассемблера.

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

 

Ассемблирование и компилирование

  • Процесс трансляции программы на языке ассемблера в объектный код принято называть ассемблированием. В отличие от компилирования, ассемблирование — более или менее однозначный и обратимый процесс. В языке ассемблера каждой мнемонике соответветствует одна машинная инструкция, в то время как в языках программирования высокого уровня за каждым выражением может скрываться большое количество различных инструкций. В принципе, это деление достаточно условно, поэтому иногда трансляцию ассемблерных программ также называют компиляцией.

Ассемблеры для x86

  • Borland Turbo Assembler (TASM), Microsoft Macro Assembler (MASM), MASM32, FASM , NASM, Unix Assembler (AS) и GNU Assembler (GAS) (Unix-подобные системы)

Достоинства языка ассемблера

  • Максимально оптимальное использование средств процессора, использование меньшего количества команд и обращений в память, и как следствие — большая скорость и меньший размер программы.
  • Использование расширенных наборов инструкций процессора (MMX, SSE, SSE2, SSE3).
    Доступ к портам ввода-вывода и особым регистрам процессора (в большинстве ОС эта возможность доступна только на уровне модулей ядра и драйверов).
  • Возможность использования самомодифицирующегося (в том числе перемещаемого) кода (под многими платформами эта возможность недоступна, так как запись в страницы кода запрещена, в том числе и аппаратно, однако в большинстве общедоступных систем из-за их врожденных недостатков имеется возможность исполнения кода содержащегося в сегменте (секции) данных, куда запись разрешена).
  • Максимальная «подгонка» для нужной платформы.

Недостатки языка ассемблера

  • Большие объемы кода, большое число дополнительных мелких задач, меньшее количество доступных для использования библиотек, по сравнению с языками высокого уровня.
  • Трудоёмкость чтения и поиска ошибок (хотя здесь многое зависит от комментариев и стиля программирования).
  • Зачастую компилятор языка высокого уровня, благодаря современным алгоритмам оптимизации, даёт более эффективную программу (по соотношению качество/время разработки).
  • Непереносимость на другие платформы (кроме совместимых).
  • Ассемблер более сложен для совместных проектов.


Источники:

Дополнительная информация: 

  • cyberguru.ru - статьи о программировании на языке Ассемблера.
  • wasm.ru - сайт, посвящённый программированию на языке Ассемблера.

Последнее редактирование ответа: 20.11.2009

  • Оставить отзыв

    Оставить отзыв

РедактироватьВ избранноеПечать


Посмотреть «ассемблер» в словарях и энциклопедиях:

ЯndexВикипедияКругосветKM.RU@mail.ruGoogle

«Что такое ассемблер»

В других поисковых системах:

GoogleЯndexRamblerВикипедия

В соответствии с пользовательским соглашением администрация не несет ответственности за содержание материалов, которые размещают пользователи. Для урегулирования спорных вопросов и претензий Вы можете связаться с администрацией сайта genon.ru. Размещенные на сайте материалы могут содержать информацию, предназначенную для пользователей старше 18 лет, согласно Федерального закона №436-ФЗ от 29.12.2010 года "О защите детей от информации, причиняющей вред их здоровью и развитию". Обращение к пользователям 18+.