Команды пересылки данных
В группу команд пересылки данных входит 28 команд, краткое описание которых, а также их количество байт и время выполнения приведено в табл. 1.16.
Таблица 1.16. Команды пересылки данных
Мнемоника команды | Код операции | Количество байтов в команде | Время выполнения команды, циклы | Выполняемые действия |
MOV A, Rn | 11101rrr | 1 | 1 | (A) (Rn) |
MOV A, ad | 11100101 | 2 | 1 | (A) (ad) |
MOV A, @Ri | 1110011i | 1 | 1 | (A) ((Ri)) |
MOV A, #d | 01110100 | 2 | 1 | (A) #d |
MOV Rn, A | 11111rrr | 1 | 1 | (Rn) (A) |
MOV Rn, ad | 10101rrr | 2 | 2 | (Rn) (ad) |
MOV Rn, #d | 01111rrr | 2 | 1 | (Rn) #d |
MOV ad, A | 11110101 | 2 | 1 | (ad) (A) |
MOV ad, Rn | 10001rrr | 2 | 2 | (ad) (Rn) |
MOV add, ads | 10000101 | 3 | 2 | (add) (ads) |
MOV ad, @Ri | 1000011i | 2 | 2 | (ad) ((Ri)) |
MOV ad, #d | 01110101 | 3 | 2 | (ad) #d |
MOV @Ri, A | 1111011i | 1 | 1 | ((Ri)) (A) |
MOV @Ri, ad | 0110011i | 2 | 2 | ((Ri)) (ad) |
MOV @Ri, #d | 0111011i | 2 | 1 | ((Ri)) #d |
MOV DPTR, #d16 | 10010000 | 3 | 2 | (DPTR) #d16 |
MOVC A, @A+DPTR | 10010011 | 1 | 2 | (А) ((A) +(DPTR)) |
MOVC A, @A+PC | 10000011 | 1 | 2 | (PC) (PC)+1, (A) ((A)+(PC)) |
MOVX A, @Ri | 1110001i | 1 | 2 | (A) ((Ri)) |
MOVX A,@DPTR | 11100000 | 1 | 2 | (A) ((DPTR)) |
MOVX @Ri, A | 1111001i | 1 | 2 | ((Ri)) (A) |
MOVX @DPTR,A | 11110000 | 1 | 2 | ((DPTR)) (A) |
PUSH ad | 11000000 | 2 | 2 | (SP) (SP) + 1, ((SP)) (ad) |
POP ad | 11010000 | 2 | 2 | (ad) (SP), (SP) (SP) - 1 |
XCH A, Rn | 11001rrr | 1 | 1 | (A) ↔ (Rn) |
XCH A, ad | 11000101 | 2 | 1 | (A) ↔ (ad) |
XCH A, @Ri | 1100011i | 1 | 1 | (A) ↔ ((Ri)) |
XCHD A, @Ri | 1101011i | 1 | 1 | (A0…3) ↔((Ri)0…3) |
По команде MOV выполняется пересылка данных из второго операнда в первый. Эта команда не имеет доступа ни к внешней памяти данных, ни к памяти программ. Для этих целей предназначены команды MOVX и MOVC соответственно. Первая из них обеспечивает чтение/запись байт из внешней памяти данных, вторая – чтение байт из памяти программ.
По команде XCH выполняется обмен байтами между аккумулятором и ячейкой РПД, а по команде XCHD – обмен младшими тетрадами (битами 0…3).
Команды PUSH и РОР предназначены соответственно для записи данных в стек и их чтения из стека. Размер стека ограничен лишь размером резидентной памяти данных. В процессе инициализации микро-ЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н.
Группа команд пересылок МК51 имеет следующую особенность – в ней нет специальных команд для работы со специальными регистрами: PSW, таймером, портами ввода-вывода. Доступ к ним, как и к другим регистрам специальных функций, осуществляется заданием соответствующего прямого адреса, т.е. это команды обычных пересылок, в которых вместо адреса можно ставить название соответствующего регистра. Например, чтение данных из порта Р1 в аккумулятор может быть выполнено командой MOV A, P1.
Кроме того, следует отметить, что в МК51 аккумулятор имеет два различных имени в зависимости от способа адресации: А – при неявной адресации (например, MOV A, R0) и АСС – при использовании прямого адреса. Первый способ предпочтительнее, однако, не всегда применим.
Дата добавления: 2016-11-26; просмотров: 2152;