Это не официальный сайт wikipedia.org 01.01.2023

Машинно-ориентированное программирование — Википедия

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

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

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

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

Применение машинно-ориентированного программированияПравить

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

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

Плюсы и минусыПравить

ПлюсыПравить

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

МинусыПравить

  • Количество кода является достаточно объёмным даже для небольших программ (так как часто приходится писать отдельные программы (подпрограммы) для вывода строк (или даже символов)).
  • Довольно сложное в освоение, так как имеет кардинальные отличия от программирования на языках более высокого уровня.

Машинно-ориентированные языки программированияПравить

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

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