25900 авторів і 91 редактор відповіли на 98952 питання,
розмістивши 129771 посилання на 81900 сайтів, приєднуйтесь!

Реклама партнерів:

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

РедагуватиУ обранеДрук

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

Кожна модель процесора, в принципі, має свій набір команд і відповідний йому мову (або діалект) асемблера.

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

Асемблювання і компіляція

  • Процес трансляції програми на мові асемблера в об'єктний код прийнято називати асемблюванні. На відміну від компілювання, ассемблирование - більш-менш однозначний і оборотний процес. У мові асемблера кожної мнемонике соответветствует одна машинна інструкція, в той час як в мовах програмування високого рівня за кожним виразом може ховатися велика кількість різних інструкцій. В принципі, це поділ досить умовно, тому іноді трансляцію ассемблерних програм також називають компіляцією.

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

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

Переваги мови асемблера

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

Недоліки мови асемблера

  • Великі обсяги коду, велике число додаткових дрібних завдань, менша кількість доступних для використання бібліотек, у порівнянні з мовами високого рівня.
  • Трудомісткість читання та пошуку помилок (хоча тут багато що залежить від коментарів і стилю програмування).
  • Найчастіше компілятор мови високого рівня, завдяки сучасним алгоритмам оптимізації, дає більш ефективну програму (за співвідношенням якість / час розробки).
  • Непереносимість на інші платформи (крім сумісних).
  • Асемблер складніший для спільних проектів.

Джерела:

  • wiki.xakep.ru - визначення "Асемблер".
  • ru.wikipedia.org - визначення "Мова асемблера".

Додаткова інформація:

  • cyberguru.ru - статті про програмування на мові Асемблера.
  • wasm.ru - сайт, присвячений програмуванню на мові Асемблера.

Реклама партнерів:

РедагуватиУ обранеДрук


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

В інших пошукових системах:

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

» » Що таке асемблер?