Способы адресации
Система команд
МК51 программируется с помощью языка ASSEMBLER.
Assembler – это машинный язык, написанный в символической форме
Система команд МК51 содержит 111 команд, которые объединяются в следующие группы:
· Арифметические команды (+ - * /)
· Логические команды (и или не искл.или)
· Команды пересылки данных
· Команды передачи управления
· Операции над битами
Каждая команда представляет собой следующую простую конструкцию:
Операция операнд(ы)
В поле операция записывается мнемоническое обозначение команды, которое является аббревиатурой полного английского наименования выполняемого действия. В поле операнд(ы) определяются объекты участвующие в операции, могут быть команды без операндов. Если операндов 2 или 3 они разделяются запятой БЕЗ ПРОБЕЛОВ. Если команд имеет 2 операнда первый операнд – приемник, а второй – источник.
Операнды бывают 3х типов:
· Биты
· Байты
o Ячейки памяти программ
o Ячейки памяти данных
o Константы
o Регистры
o Порты ввода-вывода
· Слова
o Прямые адреса
o Константы
В МК51 существует 5 способов адресации:
· Регистровая адресация, когда в качестве операндов используются регистры общего назначения и регистры специальных функций
· Прямая адресация, когда в качестве операнда указывается адрес ячейки ОЗУ или адрес регистра
· Непосредственная адресация, когда в качестве операнда используется непосредственное число (может быть только вторым) MOV A,#10h (h=16 b=2)
· Косвенная адресация. При косвенной адресации необходимо:
o В регистры R0 или R1 или DPTR записать адрес в виде непосредственного числа MOV R0,#40
o Прочитать (или записать) из адреса находящегося в регистре R0 или R1 или DPTR число. Косвенный адрес сопровождается значком @. MOV A,@R0
· Косвенная адресация, с помощью двух регистров Базового DPTR и индексного A.
MOVC A,@A+DPTR