Способы адресации

Система команд

МК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