Ассемблер
Материал из Википедии — свободной энциклопедии
Ассе́мблер (от англ. assemble — собирать) — компилятор с языка ассемблера в команды машинного языка. Русифицированное название — мнемокод. Предназначен для представления в удобном (мнемоническом) виде машинные коды команд. Пример команд на мнемокоде: СЛЖ — сложить, ВЧТ — вычесть, ПРХ — переход и другие. Обеспечивает наиболее эффективное использование ресурсов системы (процессор, память, периферия). Используется в «узких» местах — требуется большое быстродействие, ограничение по размеру оперативной памяти и другие. Ассемблером также называют иногда саму систему команд центрального процессора.
Под каждую архитектуру процессора и под каждую ОС или семейство ОС существует свой Ассемблер. Существуют также так называемые «кросс-ассемблеры», позволяющие на машинах с одной архитектурой (или в среде одной ОС) ассемблировать программы для другой целевой архитектуры или другой ОС, и получать исполняемый код в формате, пригодном к исполнению на целевой архитектуре или в среде целевой ОС.
Наиболее распространённые на сегодня архитектуры — x86 и PowerPC.
Содержание |
[править] Архитектура x86
[править] Ассемблеры для DOS
Наиболее известными ассемблерами для операционной системы DOS являлись Borland Turbo Assembler (TASM) и Microsoft Assembler (MASM). Также в своё время был популярен простой ассемблер A86.
Изначально они поддерживали лишь 16-битные команды (до появления процессора Intel 80386). Более поздние версии TASM и MASM поддерживают и 32-битные команды, а также все команды, введённые в более современных процессорах, и системы команд, специфических для конкретной архитектуры (такие как, например, MMX, SSE, 3DNow! и т. д.).
[править] Windows
При появлении операционной системы Windows появилось расширение TASM, именуемое TASM32, позволившее создавать программы для выполнения в среде Windows. Последняя известная версия Tasm — пятая, включая различные к ней дополнения. Но официально развитие программы полностью остановлено.
Совсем по-другому обстоит дело с программой MASM. Она продолжает развиваться и по сей день, последние версии включены в наборы DDK. Но версия программы, направленная на создание программ для DOS, не развивается.
Для более удобного создания программ на ассемблере для Windows появился пакет, названный MASM32, автором которого является hutch (Стив Хатчессон). Более подробная информация доступна на сайте пакета MASM32 — www.masm32.com
[править] Linux
Несколько иначе обстоит ситуация с ассемблерами для другой известной операционной системы Linux. В её состав входит компилятор gcc, включающий в себя ассемблер gas (GNU Assembler)… Но в нём используется AT&T синтаксис, в отличие от Intel-синтаксиса, используемого в большинстве остальных ассемблеров.
[править] Переносимые ассемблеры
Также существует открытый проект ассемблера, версии которого доступны под различные операционные системы, и который позволяет получать объектные файлы для этих систем. Называется этот ассемблер NASM (Netwide Assembler).
FASM — молодой, но быстро развивающийся и завоёвывающий популярность ассемблер, распространяется с исходным кодом, есть версии для Linux и Windows, использует Intel-синтаксис. Также fasm поддерживает инструкции AMD64. Достоинством является очень сильный макроязык, разнообразие форматов выходных файлов и несколько изменённый (в лучшую сторону, но несколько непривычный для «старой школы») синтаксис.
[править] Архитектура PowerPC
[править] Архитектура Atmel
Существуют:
- 8-разрядные Flash-контроллеры семейства MCS-51
- 8-разрядные RISC-контроллеры семейства AVR (ATtiny, ATmega, classic AVR)
На данный момент семейство classic AVR трансформировано в ATtiny и ATmega
- 32-разрядные RISC-контроллеры семейства ARM Thumb высокой производительности (серия AT91)
[править] 8-разрядные RISC-контроллеры семейства AVR (ATtiny, ATmega, classic AVR)
Система команд микроконтроллеров AVR весьма развита и насчитывает в различный моделях от 90 до 133 различных инструкций. Количество регистров общего назначения 32. Большинство команд занимает только 1 ячейку памяти (16 бит). Большинство команд выполняется за 1 такт.
Всё множество команд микроконтроллеров AVR можно разбить на несколько групп:
- команды логических операций
- команды арифметических операций и команды сдвига
- команды операции с битами
- команды пересылки данных
- команды передачи управления
- команды управления системой
На данный момент существуют 2 компилятора производства Atmel. Вторая версия — попытка исправить не очень удачную первую.
[править] См. также
- Дизассемблер
- Язык ассемблера
- Макропроцессор
[править] Ссылки
(MASM,TASM,FASM,NASM,YASM)
В этой статье или секции нет ссылок на источники информации. Вы можете помочь проекту, добавив список литературы или внешние ссылки. |