Команды пересылки данных микроконтроллера 8051.
Эта группа представлена 28 командами, их краткое описание приведено в таблице, где также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).
Таблица.7.Команды передачи данных
Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
Пересылка в аккумулятор из регистра (n=0÷7) | MOV A, Rn | 11101rrr | (A) (Rn) | |||
Пересылка в аккумулятор прямоадресуемого байта | MOV A, ad | (A) (ad) | ||||
Пересылка в аккумулятор байта из РПД (i=0,1) | MOV A, @Ri | 1110011i | (A) ((Ri)) | |||
Загрузка в аккумулятор константы | MOV A, #d | (A) #d | ||||
Пересылка в регистр из аккумулятора | MOV Rn, A | 11111rrr | (Rn) (A) | |||
Пересылка в регистр прямоадресуемого байта | MOV Rn, ad | 10101rrr | (Rn) (ad) | |||
Загрузка в регистр константы | MOV Rn, #d | 01111rrr | (Rn) #d | |||
Пересылка по прямому адресу аккумулятора | MOV ad, A | (ad) (A) | ||||
Пересылка по прямому адресу регистра | MOV ad, Rn | 10001rrr | (ad) (Rn) | |||
Пересылка прямоадресуемого байта по прямому адресу | MOV add, ads | (add) (ads) | ||||
Пересылка байта из РПД по прямому адресу | MOV ad, @Ri | 1000011i | (ad) ((Ri)) | |||
Пересылка по прямому адресу константы | MOV ad, #d | (ad) #d | ||||
Пересылка в РПД из аккумулятора | MOV @Ri, A | 1111011i | ((Ri)) (A) | |||
Пересылка в РПД прямоадресуемого байта | MOV @Ri, ad | 0110011i | ((Ri)) (ad) | |||
Пересылка в РПД константы | MOV @Ri, #d | 0111011i | ((Ri)) #d | |||
Загрузка указателя данных | MOV DPTR, #d16 | (DPTR) #d16 | ||||
Пересылка в аккумулятор байта из ПП | MOVC A, @A+DPTR | ((A) +(DPTR)) | ||||
Пересылка в аккумулятор байта из ПП | MOVC A, @A+PC | (PC) (PC)+1, (A) ((A)+(PC)) | ||||
Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
Пересылка в аккумулятор байта из ВПД | MOVX A, @Ri | 1110001i | (A) ((Ri)) | |||
Пересылка в аккумулятор байта из расширенной ВПД | MOVX A,@DPTR | (A) ((DPTR)) | ||||
Пересылка в ВПД из аккумулятора | MOVX @Ri, A | 1111001i | ((Ri)) (A) | |||
Пересылка в расширенную ВПД из аккумулятора | MOVX @DPTR,A | ((DPTR)) (A) | ||||
Загрузка в стек | PUSH ad | (SP) (SP) + 1, ((SP)) (ad) | ||||
Извлечение из стека | POP ad | (ad) (SP), (SP) (SP) - 1 | ||||
Обмен аккумулятора с регистром | XCH A, Rn | 11001rrr | (A) ↔ (Rn) | |||
Обмен аккумулятора с прямоадресуемым байтом | XCH A, ad | (A) ↔ (ad) | ||||
Обмен аккумулятора с байтом из РПД | XCH A, @Ri | 1100011i | (A) ↔ ((Ri)) | |||
Обмен младших тетрад аккумулятора и байта РПД | XCHD A, @Ri | 1101011i | (A0…3) ↔((Ri)0…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) и АСС – при использовании прямого адреса. Первый способ предпочтительнее, однако, не всегда применим.
Дата добавления: 2016-03-27; просмотров: 1013;