Последний уровень раздела предыдущего изложения   Текущий уровень изложения предыдущего раздела   Текущий уровень изложения следующего раздела   Первый уровень изложения следующего раздела   Уровень:


Команды пересылки данных микроконтроллера -8051

Эта группа представлена 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) и АСС - при использовании прямого адреса. Первый способ предпочтительнее, однако, не всегда применим.