Язык ассемблера – язык программирования микропроцессоров, ориентированный на определенную архитектуру. Программа, написанная на языке ассемблера, переводится в машинные коды с помощью компилятора. Язык ассемблера использует систему команд процессорного ядра и директивы, указывающие ассемблеру, как организовывать блоки программы. Единого языка ассемблера не существует ввиду различий в архитектуре микропроцессоров. Язык ассемблера – сис-ма обозначений машинных кодов, представленная в удобной для программиста форме.
Программа на языке ассемблера состоит из строка, каждая строка состоит из 4-х полей:
Поле метки
Поле команд и директив
Поле операндов
Комментарии
В поле метки указывается метка, по которой можно выполнить переход к другим блокам программы. В поле команд указываются команды, исполняемые микропроцессором и директивы – указания компилятору. В поле операндов указываются операнды команд: регистры, адреса, переменные, константы.
В общем случае сис-ма команд процессора включает следующие группы команд:
-команды пересылки данных;
-команды арифметические;
-логические команды;
-команды переходов.
Команды пересылки данных выполняют копирование операндов из источника данных в приемник. Источником и приемником данных могут быть регистры процессора, ячейки памяти, периферийные устройства. В некоторых процессорах используются команды пересылки данных не только одного байта или слова, а строк или массивов слов одновременно.
Арифметические команды выполняют операции сложения, умножения, деления, вычитания и т.д. с использованием АЛУ. Арифметические команды рассматривают коды операндов как числовые значения в разных сис-мах счисления. Существуют целочисленные арифметические операции, а также дробные с фиксированной или плавающей точкой. Логические команды проводят над операндами побитовые операции алгебры логики: логическое И, ИЛИ, сложение по модулю два, инверсию, а также побитовые сдвиги операндов.
Команды переходов необходимы для изменения порядка выполнения программ. С их помощью реализуются переходы на подпрограммы, пропуски строк кода, циклы и ветвления. Существуют условные и безусловные переходы.
Сис-ма команд представляется трех- или четырехбуквенным мнемоническим символом. Мнемонические символы ассоциируются с функцией команды и соответствуют действиям процессора.
При написании программ следует учитывать, что каждая команда занимает определенное число байт в памяти.
Основной особенностью программирования микропроцессорных систем является доступность всей периферии и памяти, содержащейся в адресном пространстве, таким образом любая ячейка памяти и устройство ввода-вывода может являться операндом для программы.