![]() ![]() ![]() ![]() |
|
|
![]() |
Эта группа представлена 28 командами, их краткое описание приведено в таблице, где также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (В) и время выполнения в машинных циклах (С).
Мнемокод | КОП | Т В С | Описание |
MOV A, Rn | 11101rrr | 1 1 1 | (A) <-- (Rn) |
MOV A, ad | 11100101 | 3 2 1 | (A) <--(ad) |
MOV A, @Ri | 1110011i | 1 1 1 | (A) <-- ((Ri)) |
MOV A, #d | 01110100 | 2 2 1 | (A) <-- #d |
MOV Rn, A | 11111rrr | 1 1 1 | (Rn) <-- (A) |
MOV Rn, ad | 10101rrr | 3 2 2 | (Rn) <-- (ad) |
MOV Rn, #d | 01111rrr | 2 2 1 | (Rn) <-- #d |
MOV ad, A | 11110101 | 3 2 1 | (ad) <--(A) |
MOV ad, Rn | 10001rrr | 3 2 2 | (ad) <-- (Rn) |
MOV add, ads | 10000101 | 9 3 2 | (add) <-- (ads) |
MOV ad, @Ri | 1000011i | 3 2 2 | (ad) <-- ((Ri)) |
MOV ad, #d | 01110101 | 7 3 2 | (ad) <-- #d |
MOV @Ri, A | 1111011i | 1 1 1 | ((Ri)) <-- (A) |
MOV @Ri, ad | 0110011i | 3 2 2 | ((Ri)) <-- (ad) |
MOV @Ri, #d | 0111011i | 2 2 1 | ((Ri)) <-- #d |
MOV DPTR, #d16 | 10010000 | 3 3 2 | (DPTR) <-- #d16 |
MOVC A, @A+DPTR | 10010011 | 1 1 2 | (A) <-- ((A)+(DPTR)) |
MOVC A, @A+pc | 10000011 | 4 1 2 | (PC) <-- (PC+1), (A) <-- ((A)+(PC)) |
MOVX A,@Ri | 11100011 | 1 1 2 | (A) <-- ((Ri)) |
MOVX a, @DPTR | 11100000 | 1 1 2 | (A) <-- ((DPTR)) |
MOVX @Ri, A | 1111001i | 1 1 2 | ((Ri)) <-- (A) |
MOVX @DPTR, A | 11110000 | 1 1 2 | (DPTR)) <-- (A) |
PUSH ad | 11000000 | 3 2 2 | (SP) <-- (SP)+1, ((SP)) <-- (ad) |
POP ad | 11010000 | 3 2 2 | (ad) <-- ((SP)), (SP) <-- (SP)-1 |
XCH A, Rn | 11001rrr | 1 1 1 | (A) <-> (Rn) |
XCH A, ad | 11000101 | 3 2 1 | (A) <-->(ad) |
XCH A, @Ri | 11000111 | 1 1 1 | (A) <->((@Ri)) |
A, @Ri | 11010111 | 1 1 1 | (А0-3)<->((@Ri0-3)) |
По команде MOV выполняется пересылка данных из второго операнда в первый. Эта команда не имеет доступа ни к внешней памяти данных, ни к памяти программ. Для этих целей предназначены команды M0VX и MOVC соответственно. Первая из них обеспечивает чтение/запись байт из внешней памяти данных, вторая - чтение байт из памяти программ.
По команде XCH выполняется обмен байтами между аккумулятором и ячейкой РПД, а по команде XCHD - обмен младшими тетрадами (битами 0 - 3).
Команды PUSH и РОР предназначены соответственно для записи данных в стек и их чтения из стека .Размер стека ограничен лишь размером резидентной памяти данных. В процессе инициализации микро-ЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н.
Группа команд пересылок микроконтроллера имеет следующую особенность - в ней нет специальных команд для работы со специальными регистрами: PSW, таймером, портами ввода-вывода. Доступ к ним, как и к другим регистрам специальных функций, осуществляется заданием соответствующего прямого адреса, т.е. это команды обычных пересылок, в которых вместо адреса можно ставить название соответствующего регистра. Например, чтение PSW в аккумулятор может быть выполнено командой
MOV A, PSW
которая преобразуется Ассемблером к виду
MOV А, 0D0h (E5 D0),
где Е5 - код операции, а D0 - операнд (адрес PSW).
Кроме того, следует отметить, что в микро-ЭВМ аккумулятор имеет два различных имени в зависимости от способа адресации: А - при неявной адресации (например, MOV A, R0) и АСС - при использовании прямого адреса. Первый способ предпочтительнее, однако, не всегда применим.