Скачиваний:
50
Добавлен:
01.05.2014
Размер:
562.18 Кб
Скачать

16. Система команд мк51

Система команд МК51 содержит 111 базовых команд, которые удобно разделить по функциональному признаку на пять групп: команды передачи данных, арифметических операций, логических операций, передачи управления и операций с битами.

Система команд МК51 много мощнее и шире системы команд МК48, так как кроме всех команд МК48 в ее состав входят команды умножения, деления, вычитания, операций над битами, операций со стеком и расширенный набор команд передачи управления. Большинство команд (94) имеют формат один или два байта и выполняются за один или два машинных цикла. При тактовой частоте 2 МГц длительность машинного цикла составляет 1 мкс. Первый байт команды любых типа и формата всегда содержит код операции (КОП). Второй и третий байты содержат либо адреса операндов, либо непосредственные операнды.

Состав операндов МК51 шире, чем МК48, и включает в себя операнды четырех типов: биты, 4-битные цифры, байты и 16-битные слова.

В отличие от МК48, который имеет только три битовых флага, МК51 имеет 128 программно-управляемых флагов пользователя. Имеется также возможность адресации отдельных бит блока регистров специальных функций и портов.

Способы адресации данных. В МК51 используются такие же способы адресации данных, как и в МК48: прямая, непосредственная, косвенная и неявная. Следует отметить, что при косвенном способе адресации РПД в отличие от МК48 используются все восемь бит адресных регистров R0 и R1.

Группа команд пересылки данных

Большую часть команд данной группы (табл. 3.2) составляют команды передачи и обмена байтов. Команды пересылки бит представлены в группе команд битовых операций.

Примеры команд:

- Пересылка в аккумулятор из регистра (MOV A, Rn)

- Пересылка в аккумулятор прямоадресуемого байта (MOV A, ad)

- Пересылка в аккумулятор байта из РДП (MOV A, @Ri)

- Загрузка в аккумулятор константы (MOV A, #d)

и так далее.

Группа команд арифметических операций

Данную группу образуют 24 команды, выполняющие операции сложения, десятичной коррекции, инкремента/декремента байтов. Дополнительно по сравнению с МК48 введены команды вычитания, умножения и деления байтов.

Примеры команд:

- Сложение аккумулятора с регистром (ADD A, Rn)

- Сложение аккумулятора с прямоадресуемым байтом (ADD A, ad)

- Сложение аккумулятора с байтом из РПД (ADD A, @Ri)

- Сложение аккумулятора с константой (ADD A, #d)

- Вычитание из аккумулятора регистра и заема (SUBB A, Rn)

- Инкремент аккумулятора (INC A)

- Декремент аккумулятора (DEC A)

- Умножение аккумуллятора на регистр B (MUL AB)

- Деление аккумулятора на регистр B (DIV AB)

Группа команд логических операций

Данную группу образуют 25 команд (табл. 3.4), реализующих те же логические операции над байтами, что и в МК48. Однако в МК51 значительно расширено число типов операндов, участвующих в операциях.

Примеры команд:

- Логическое И аккумулятора и регистра (ANL A, Rn)

- Логическое ИЛИ аккумулятора и регистра (ORL A, Rn)

- Исключающее ИЛИ аккумулятора и регистра (XRL A, Rn)

- Сброс аккумулятора (CLR A)

- Инверсия аккумулятора (CPL A)

- Сдвиг аккумулятора влево циклически (RL A)

- Сдвиг аккумулятора влево через перенос (RLC A)

- Сдвиг аккумулятора вправо циклически (RR A)

- Сдвиг аккумулятора вправо через перенос (RRC A)

Соседние файлы в папке MPS_shprots