Машинно-ориентированное программирование
Машинно-ориентированное программирование — это процесс создания программы, где исходный код пишется на машинно-ориентированном языке (например, на языке-ассемблере).
Программы, написанные на машинно-ориентированных языках чаще всего являются не кроссплатформенными. Хотя, в качестве исключения, можно взять в пример программы, которые не используют системные вызовы, относящиеся к определённой ОС, а также, использующие машинные операторы, которые есть во всех известных процессорных архитектурах.
Машинно-ориентированное программирование имеет смысл быть в сфере системного программирования, но в некоторых случаях его применение является бесполезным (а иногда даже невозможным).
Применение машинно-ориентированного программированияПравить
Даже сегодня, когда существует множество языков программирования высокого уровня, таких как Python или же Java, машинно-ориентированное программирование остаётся более, чем просто востребованным. Вот самые распространённые случаи его применения:
- Программирование некоторых микроконтроллеров (например, создание драйвера клавиатуры).
- Создание программ для различных дисплеев, станков и так далее (что можно отнести к прошлому пункту).
- Создания загрузчика для ОС.
- Создание ОС (отличается от предыдущего пункта тем, что на машинно-ориентированном языке пишется не только загрузчик, а также, например, ядро ОС).
Плюсы и минусыПравить
ПлюсыПравить
- Программы получаются хорошо оптимизированными (так как затраты памяти минимальны, а один оператор, написанный на языке-ассемблере, равен одному машинному оператору (за исключение можно взять макро и псевдо операторы)).
- Легче отлаживать программы (так как библиотеки отсутствуют, соответственно весь код будет написан программистом).
- Полное понимание работы ЭВМ, а также ОС.
МинусыПравить
- Количество кода является достаточно объёмным даже для небольших программ (так как часто приходится писать отдельные программы (подпрограммы) для вывода строк (или даже символов)).
- Довольно сложное в освоение, так как имеет кардинальные отличия от программирования на языках более высокого уровня.
Машинно-ориентированные языки программированияПравить
- NASM — свободный язык-ассемблер для архитектур Intel x86, используется при написании 16-, 32- и 64-разрядных программ.
- FASM — свободно распространяемый многопроходной язык-ассемблер для машин с архитектурой x86 с открытым исходным кодом.
- GAS — язык-ассемблер проекта GNU, используется в компиляторах GCC.
- MASM — язык-ассемблер для процессоров семейства x86. Изначально был произведён компанией Microsoft для написания программ под MS-DOS, в одно время был самым популярным ассемблером для этой ОС.
- TASM — программный пакет, предоставляемый компанией Borland, для разработки программ на ассемблере под архитектуру x86.
- YASM — язык-ассемблер, который является попыткой полностью переписать NASM.
На этом список машинно-ориентированных не заканчивается, но здесь приведены самые часто используемые языки-ассемблеры.
В статье не хватает ссылок на источники (см. рекомендации по поиску). |