Машинно-ориентированное программирование

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Машинно-ориентированное программирование — это процесс создания программы, где исходный код пишется на машинно-ориентированном языке (например, на языке-ассемблере).

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

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

Применение машинно-ориентированного программирования[править | править код]

Даже сегодня, когда существует множество языков программирования высокого уровня, таких как Python или же Java, машинно-ориентированное программирование остаётся более, чем просто востребованным. Вот самые распространённые случаи его применения:

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

Плюсы и минусы[править | править код]

Плюсы[править | править код]

  • Оптимизированные программы: затраты памяти минимальны, а один оператор, написанный на языке-ассемблере, равен одному машинному оператору (за исключение можно взять макро- и псевдооператоры).
  • Облегчённая отладка программ: библиотеки отсутствуют, соответственно весь код будет написан программистом.

Минусы[править | править код]

  • Объёмный код: часто приходится писать подпрограммы для вывода строк (или даже символов).
  • Сложное освоение: кардинальные отличия от программирования на языках более высокого уровня.

Машинно-ориентированные языки программирования[править | править код]

  • NASM — свободный язык-ассемблер для архитектур Intel x86, используется при написании 16-, 32- и 64-разрядных программ.
  • FASM — свободно распространяемый многопроходной язык-ассемблер для машин с архитектурой x86 с открытым исходным кодом.
  • GAS — язык-ассемблер проекта GNU, используется в компиляторах GCC.
  • MASM — язык-ассемблер для процессоров семейства x86. Изначально был произведён компанией Microsoft для написания программ под MS-DOS, в одно время был самым популярным ассемблером для этой ОС.
  • TASM — программный пакет, предоставляемый компанией Borland, для разработки программ на ассемблере под архитектуру x86.
  • YASM — язык-ассемблер, который является попыткой полностью переписать NASM.

На этом список машинно-ориентированных не заканчивается, но здесь приведены самые часто используемые языки-ассемблеры.