Читайте также:
|
|
У системі команд МК51 можна виділити п'ять груп: арифметичні, логічні, команди пересилання даних, команди роботи з бітами й команди розгалужування або передачі керування.
2.4.1. Арифметичні команди
Арифметичні команди (табл. 2.3) забезпечують виконання операцій додавання, віднімання (у т.ч. з урахуванням переносу) над цілочисельними 8-розрядними операндами, інкрементування й декрементування вмісту регістрів і комірок внутрішньої пам'яті даних, множення й розподіл 8-розрядних цілочисельних операндів.
Арифметичні команди мікроконтролерів МCS-51
Таблиця 2.3
Мнемоніка | Опис | Байт | Тактів | Дія |
ADD A, Rn | Додавання регістру з акумулятором | (A) (A)+ (Rn) | ||
ADD A, @ Ri | Додавання комірок внутрішньої пам'яті даних, що адресується непрямо, з акумулятором | (A) (A)+ ((Ri)) | ||
ADD A, Rn | Додавання регістру з акумулятором з урахуванням переносу | (A) (A)+ (C)+ (Rn) | ||
ADDС A, @ Ri | Додавання комірок внутрішньої пам'яті даних, що адресується непрямо, з акумулятора з урахуванням переносу | (A) (A)+ (C)+ ((Ri)) |
Закінчення табл. 2.3
SUBB A, Rn | Віднімання регістру з акумулятора з урахуванням позики | (A) (A)- (C)- (Rn) | ||
SUBB A, @ Ri | Віднімання непрямо адресованої комірки внутрішньої пам'яті даних з акумулятора з урахуванням переносу | (A) (A)- (C)- ((Ri)) | ||
INC A | Інкремент акумулятора | (A) (A)+1 | ||
INC Rn | Інкремент регістру | (Rn) (Rn)+1 | ||
INC @ Ri | Інкремент непрямо адресованої комірки внутрішньої пам'яті даних | ((Ri)) ((Ri))+1 | ||
DEC A | Декремент акумулятора | (A) (A)-1 | ||
DEC Rn | Декремент регістру | (Rn) (Rn)-1 | ||
DEC @ Ri | Декремент непрямо адресованої комірки внутрішньої пам'яті даних | ((Ri)) ((Ri))-1 | ||
INC DPTR | Інкремент покажчика даних | (DPTR) (DPTR)+1 | ||
MUL AB | Множення А на В | (A)7-0 (A)´ (B) (B)15-8 | ||
DIV AB | Ділення А на В | (A)15-8 (A)/(B) (B)7-0 | ||
DА А | Двійково-десяткова корекція | Вміст акумулятора у ВСD IF [(A 3-0) > 9]Ú [(AC) = 1] THEN (A)3-0 (A 3-0)+ 6 AND IF [(A 7-4) > 9]Ú [(C) = 1] THEN (A)7-4 (A 7-4)+ 6 | ||
ADD A, direct | Додавання комірки внутрішньої пам'яті даних з акумулятором | (A) (A)+ (direct) | ||
ADD A, #data | Додавання безпосереднього байта даних з акумулятором | (A) (A)+# data | ||
ADDС A, direct | Додавання комірки внутрішньої пам'яті даних з акумулятором з урахуванням переносу | (A) (A)+ (C)+ (direct) | ||
ADDС A, #data | Додавання безпосереднього байта даних з акумулятором з урахуванням переносу | (A) (A)+ (C)+# data | ||
SUBB A, direct | Віднімання комірки внутрішньої пам'яті даних з акумулятора з обліком позики | (A) (A)- (C)- (direct) | ||
SUBB A, #data | Віднімання безпосереднього байта даних з акумулятора з урахуванням переносу | (A) (A)- (C)-# data | ||
INC direct | Інкремент комірки внутрішньої пам'яті даних | (direct) (direct)+1 | ||
DEC direct | Декремент комірки внутрішньої пам'яті даних | (direct) (direct)-1 |
У таблиці наведено мнемонічне зображення команд, види операцій над операндами, кількість байтів у команді, кількість тактів і умовне зображення операції, здійснюваної мікропроцесором над операндами.
Наприклад, АDD А, R3; додавання вмісту регістру R3 поточного банку з
акумулятором, результат міститься в акумуляторі
< A >< A > + < R 3 >.
В арифметичних командах використовуються всі види адресації, розглянуті вище.
Як можна побачити з таблиці, арифметичні команди не містять трибайтових команд. Однобайтові команди використовують регістрову й непряморегістрову адресацію, результат операції завжди розміщується в акумуляторі
АDD А,
Rn; АDD А, @ Ri
; АDDC A,
Rn;
SUBB A,
Rn; SUBB A @ Ri
; INC
Rn; DCC @ Ri
; INC @ Ri.
Команди інкремента й декремента також усі одно байтові. Винятком є команди інкремента й декремента прямоадресованих комірок внутрішньої пам'яті даних, в яких (INC direct) у другому байті команди завжди знаходиться адреса комірок внутрішньої пам'яті даних. Слід зазначити, що якщо адресація до комірки внутрішньої пам'яті даних використовує непряму регістрову адресацію, наприклад INC @ R0, то команда виходить однобайтовою.
Особливістю системи команд МК51 є наявність команд множення (MUL) і ділення (DIV) цілочисельних 8-розрядних операндів. Команди множення й ділення використовують регістр В. Уміст акумулятора множиться на вміст регістру В и ділиться на вміст регістру В. 16-розрядний результат зберігається в регістрах А и В.
2.4.2. Логічні команди
Логічні команди (табл. 2.4) виконують реалізацію логічних операцій «І» (AND); «АБО» (ORL); «що виключає АБО» (сума за модулем два) (XRL) над операндами, зрушення над умістом акумулятора вправо й уліво, очищення акумулятора й перестановку його тетрад.
Логічні команди мікроконтролерів МCS-51
Таблиця 2.4
Мнемоніка | Опис | Байт | Тактів | Дія |
ANL A, Rn | AND регістру й акумулятора | (A) (A)L(Rn) | ||
ANL A, @ Ri | AND непрямо адресованої комірки внутрішньої пам'яті даних і акумулятора | (A) (A)L((Ri)) | ||
ORL A, Rn | OR регістру й акумулятора | (A) (A)Ú (Rn) | ||
ORL A, @ Ri | OR непрямо адресованої комірки внутрішньої пам'яті даних і акумулятора | (A) (A)Ú ((Ri)) | ||
XRL A, Rn | XOR регістру й акумулятора | (A) (A)"(Rn) |
Закінчення табл. 2.4
|
Слід зазначити, що всі команди, що використовують регістрову й реєстрову-регістрову-непряморегістрову адресації, також однобайтові.
Якщо логічні операції виконуються над операндами, розміщеними у внутрішній пам'яті, й операндом, розміщеним у команді, то команди в цьому
випадку мають три байти й виконуються за 24 такти. Це команди ANL direct,
#data, ORL direct, #data, XRL direct, #data.
Дата добавления: 2015-07-08; просмотров: 204 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
D0 ... Dm | | | Команди пересилання |