Машинно-ориентированные языки
Под такими языками понимаются те языки, для которых наборы операторов и изобразительные средства для написания программ существенно зависят от той ЭВМ, для которой пишется программа. Существенным достоинством таких языков является, то что они позволяют программисту максимально использовать все возможности и особенности ЭВМ. Но сразу следует заметить, что квалификация программиста, работающего на машинном ориентированном языке, должна быть очень высокой, поскольку человек в этом случае должен не только знать, но и «чувствовать» особенности машин. Отметим особенности составление программ:
1. Высокое качество создаваемых программ. Программы получаются компактными и работают максимально быстро.
2. Возможность использования конкретных аппаратных ресурсов машин. Эта особенность очень важна, когда программы создаются для некоторого контроллера, который с помощью устройств связи с объектом технологическим оборудованием или экспертной установкой.
Под устройством связи с объектом понимаются такие элементы, которые умеют измерять аналоговый сигнал, идущий от объекта и преобразовать этот сигнал в цифровой код. Такие элементы называются АЦП. Чем больше уровень аналогового сигнала, тем больше значение кода будет на выходе АЦП. Если объект выдаёт набор цифровых сигналов, то они принимаются устройством связи с объектом при помощи входного регистра. Если необходимо подавать на объект сигналы в виде аналогового напряжения, то управляющий код, выдаваемый контроллером, преобразуется в аналоговый сигнал при помощи ЦАП. Чем больший код компьютер подаст на ЦАП, тем больший уровень напряжения будет на выходе ЦАП. Если из контроллера нужно вывести цифровые сигналы управления, то это выполняется при помощи входного регистра. Если некоторый объект выдаёт импульсные сигналы, а контроллер должен их сосчитать, то это выполняется с помощью устройства «счётчик».
3. Предсказуемость получаемого объектного кода (код командных машинных кодов) и расположение команды в памяти.
Тем не менее машинно-ориентированные языки обладают некоторыми недостатками. Для составления эффективных программ, программист должен уметь ориентироваться в системе команд и особенностях структуры используемой ЭВМ. Процесс составления команд на машинно-ориентированном языке довольно трудоёмкий. Поскольку процесс трудоёмкий, то скорость составления программ получается низкой. В качестве примеров машинно-ориентированного языка следует привести Ассемблер. Этот язык имеется в каждой ЭВМ, но при этом синтаксис этого языка, то есть применяемые условные обозначения зависят от типа ЭВМ. Например в PDP 11 регистры общего назначения обозначаются R0, R1… до R7, то в машине IBM использующий например процессор Intel 80386 обозначение регистров будет несколько другим. Например регистр AX – это есть 16 – разрядный регистр аккумулятор
В ЭВМ PDP 11 регистр-аккумулятор обозначается R7.
Команда ассемблера Intel 80386 по пересылке данных из аккумулятора в некий регистр С будет выглядеть следующим образом:
MOV CX, AX. Следует заметить, что по правилам языка ассемблера для Intel
регистр источник ставится на второе место после кода команды, а регистр приёмник на первое место.