Программирование и комп-ры

Микроконтроллеры семейства MCS51 Intel


Инструкции  MCS51TM    Intel
Инструкции, модифицирующие флаги (1)
|Инструк| C   OV|Инструк| C   OV|
|ция    |AC     |ция    |AC     |
|ADD    | X     |CLR C  | O     |
|       |X     X|       |       |
|ADDC   | X     |CPL C  | X     |
|       |X     X|       |       |
|SUBB   | X     |ANL    | X     |
|       |X     X|C,bit  |       |
|MUL    | O     |ANL    | X     |
|       |X      |C,/bit |       |
|DIV    | O     |ORL    | X     |
|       |X      |C,bit  |       |
|DA     | X     |ORL C, | X     |
|       |       |bit    |       |
|RRC    | X     |MOV    | X     |
|       |       |C,bit  |       |
|RLC    | X     |CJNE   | X     |
|       |       |SETB C | 1     |


Замечание. Операции с регистром специальных функций с регистром PSW  или с
его битами также модифицируют флаги.
Условные обозначения операндов:
Rn                Регистр R7-R0 текущего банка рабочих регистров
direct            8-bit прямой адрес.  Это может быть ячейка внутреннего
ОЗУ данных (0-7F h) или  SFR  (7Fh - 0FFh).
@Ri             8-bit косвенный  адрес внутреннего ОЗУ (00 - 0ffh) равен
содержимому  указателя R0 или R1.
#data           8-bit  непосредственная константа, включенная в инструкцию.
#data 16     16-bit непосредственная константа, включенная в инструкцию.
addr 16       16-bit  адрес длинного перехода, используемый командами
LCALL  и  LJMP.
addr 11       11-bit адрес относительного перехода, используемый командами
ACALL  и  AJMP.
rel                 8-bit смещение со знаком, используемое командой  SJMP и
командами условных  переходов.
bit                 Прямой адрес бита внутреннего ОЗУ или SFR.
Таблица 1.   Список инструкций MCS51TM Intel.
|Мнемоника    |Содержание                                   |Byt|Tac|
|             |                                             |e  |t  |
|1. Арифметические операции.                                         |
|ADD     A,Rn |(A) + (Rn) -> A                     Сложение |1  |12 |
|ADD          |(A) + (direct) -> A                          |2  |12 |
|A,direct     |                                             |   |   |
|ADD     A,@Ri|(A) + ( (Ri) ) -> A                          |1  |12 |
|ADD          |(A) + #data -> A                             |2  |12 |
|A,#data      |                                             |   |   |
|ADDC  A,Rn   |(A) + (Rn) + c -> A               Сложение с |1  |12 |
|             |учетом переноса                              |   |   |
|ADDC         |(A) + (direct) + c -> A                      |2  |12 |
|A,direct     |                                             |   |   |
|ADDC  A,@Ri  |(A) + ( (Ri) ) + c -> A                      |1  |12 |
|ADDC  A,#data|(A) - #data  - c -> A                        |2  |12 |
|SUBB    A,Rn |(A) - (Rn) - c -> A               Вычитание с|1  |12 |
|             |учетом заема                                 |   |   |
|SUBB A,direct|(A) - (direct) - c -> A                      |2  |12 |
|SUBB A,@Ri   |(A) - ( (Ri) ) - c -> A                      |1  |12 |
|SUBB A,#data |(A) - #data  - c -> A                        |2  |12 |
|INC A        |(A) + 1 -> A                                 |1  |12 |
|             |Инкремент ( увеличение на единицу )          |   |   |
|INC Rn       |(Rn) + 1 -> Rn                               |1  |12 |
|INC direct   |(direct) + 1 -> direct                       |2  |12 |
|INC @Ri      |( (Ri) ) + 1 -> ( Ri )                       |1  |12 |
|INC DPTR     |(DPTR) + 1 -> DPTR                           |1  |24 |
|DEC A        |(A) - 1 -> A                                 |1  |12 |
|             |Декремент ( уменьшение на единицу )          |   |   |
|DEC Rn       |(Rn) - 1 -> Rn                               |1  |12 |
|DEC direct   |(direct) - 1 -> direct                       |2  |12 |
|DEC @Ri      |( (Ri) ) - 1 -> ( Ri )                       |1  |12 |
|MUL AB       |(A) * (B) -> AB                   Умножение  |1  |48 |
|             |(AB - произведение)                          |   |   |
|DIV AB       |(A) / (B) -> AB                     Деление  |1  |48 |
|             |(A - частное B - остаток)                    |   |   |
|DA A         | Десятичная коррекция аккумулятора           |1  |12 |
|2. Логические операции.                                             |
|ANL A,Rn     |(A) и (Rn) -> A                   Логическое |1  |12 |
|             |побитовое И                                  |   |   |
|ANL A,direct |(A) и (direct) -> A                          |2  |12 |
|ANL A,@Ri    |(A) и ( (Ri) ) -> A                          |1  |12 |
|ANL A,#data  |(A) и #data -> A                             |2  |12 |
|ANL direct,A |(direct) и (A) -> direct                     |2  |12 |
|ANL          |(direct) и #data -> direct                   |3  |24 |
|direct,#data |                                             |   |   |
|ORL A,Rn     |(A) или  (Rn) -> A                           |1  |12 |
|             |Логическое побитовое ИЛИ                     |   |   |
|ORL A,direct |(A) или (direct) -> A                        |2  |12 |
|ORL A,@Ri    |(A) или ( (Ri) ) -> A                        |1  |12 |
|ORL A,#data  |(A) или #data -> A                           |2  |12 |
|ORL direct,A |(direct) или (A) -> direct                   |2  |12 |
|ORL          |(direct) или #data -> direct                 |3  |24 |
|direct,#data |                                             |   |   |
|XRL A,Rn     |(A) ^ (Rn) -> A               Логическое     |1  |12 |
|             |побитовое исключающее ИЛИ                    |   |   |
|XRL A,direct |(A) ^ (direct) -> A                          |2  |12 |
|XRL A,@Ri    |(A) ^ ( (Ri) ) -> A                          |1  |12 |
|XRL A,#data  |(A) ^ #data -> A                             |2  |12 |
|XRL direct,A |(direct) ^ (A) -> direct                     |2  |12 |
|XRL          |(direct) ^ #data -> direct                   |3  |24 |
|direct,#data |                                             |   |   |
|CLR A        |00h -> A        Обнуление                    |1  |12 |
|Мнемоника    |Содержание                                   |Byt|Tac|
|             |                                             |e  |t  |
|CPL A        |not (A) -> A  Инверсия                       |1  |12 |
|RL A         |Циклический сдвиг аккумулятора влево на один |1  |12 |
|             |бит                                          |   |   |
|RLC A        |Циклический сдвиг аккумулятора влево на один |1  |12 |
|             |бит через бит переноса                       |   |   |
|RR A         |Циклический сдвиг аккумулятора вправо на один|1  |12 |
|             |бит                                          |   |   |
|RRC A        |Циклический сдвиг аккумулятора вправо на один|1  |12 |
|             |бит через бит переноса                       |   |   |
|SWAP A       |Обмен тетрадами в аккумуляторе               |1  |12 |
|3. Пересылка данных.                                                |
|MOV A,Rn     |(Rn) -> A                                    |1  |12 |
|MOV A,direct |(direct) -> A                                |2  |12 |
|MOV A,@Ri    |( (Ri) ) -> A                                |1  |12 |
|MOV A,#data  |#data -> A                                   |2  |12 |
|MOV Rn,A     |(A) -> Rn                                    |1  |12 |
|MOV Rn,direct|(direct) -> Rn                               |2  |24 |
|MOV Rn,#data |#data -> Rn                                  |2  |12 |
|MOV direct,A |(A) -> direct                                |2  |12 |
|MOV direct,Rn|(Rn) -> direct                               |2  |24 |
|MOV          |(direct) -> direct                           |3  |24 |
|direct,direct|                                             |   |   |
|MOV          |( (Ri) ) -> direct                           |2  |24 |
|direct,@Ri   |                                             |   |   |
|MOV          |#data -> direct                              |3  |24 |
|direct,#data |                                             |   |   |
|MOV @Ri,A    |(A) -> (Ri)                                  |1  |12 |
|MOV          |(direct) -> (Ri)                             |2  |24 |
|@Ri,direct   |                                             |   |   |
|MOV @Ri,#data|#data  -> (Ri)                               |2  |12 |
|MOV          |#data16 -> DPTR                              |3  |24 |
|DPTR,#data16 |                                             |   |   |
|MOVC         |( ( A) + ( DPTR ) ) -> A  Обмен с внешне     |1  |24 |
|A,@A+DPTR    |памятью программ                             |   |   |
|MOVC A,@A+PC |( ( A) + ( PC ) ) -> A                       |1  |24 |
|MOVX A,@Ri   |( ( Ri) ) -> A                       Обмен с |1  |24 |
|             |внешней памятью данных                       |   |   |
|MOVX A,@DPTR |( ( DPTR ) ) -> A                            |1  |24 |
|MOVX @Ri,A   |(A) ->  ( Ri)                                |1  |24 |
|MOVX @DPTR,A |(A) ->  ( DPTR )                             |1  |24 |
|PUSH direct  |(direct) -> Stack     Запись в стек          |2  |24 |
|POP direct   |(Stack) -> direct     Извлечение из стека    |2  |24 |
|XCH A,Rn     |(A) <- > (Rn)           Обмен содержимым     |1  |12 |
|XCH A,direct |(A) <- > (direct)                            |2  |12 |
|XCH A,@Ri    |(A) <- > ( (Ri) )                            |1  |12 |
|XCHD A,@Ri   |(A) <- > ( (Ri) )  Обмен младшей тетрадой    |1  |12 |
|4. Битовые операции.                                                |
|CLR C        |0 -> с                                       |1  |12 |
|CLR bit      |0 -> bit                                     |2  |12 |
|SETB C       |1 -> c                                       |1  |12 |
|SETB bit     |1 -> bit                                     |2  |12 |
|CPL C        |not(c)   -> c                                |1  |12 |
|CPL bit      |not(bit) -> bit                              |2  |12 |
|ANL C,bit    |( с ) и (bit) -> c                           |2  |24 |
|ANL C,/bit   |( c ) и not(bit) -> c                        |2  |24 |
|ORL C,bit    |( c ) или (bit) -> c                         |2  |24 |
|ORL C,/bit   |( c ) или not(bit) -> c                      |2  |24 |
|MOV C,bit    |(bit) -> c                                   |2  |12 |
|MOV bit,C    |( c ) -> bit                                 |2  |24 |
|JC rel       |если  с = 1 ,   то переход по смещению rel   |2  |24 |
|JNC rel      |если  с = 0 ,   то переход по смещению rel   |2  |24 |
|JB bit,rel   |если  bit = 1 ,   то переход по смещению rel |3  |24 |
|JNB bit,rel  |если  bit = 0 ,   то переход по смещению rel |3  |24 |
|JBC bit,rel  |если  bit = 1 ,   то переход по смещению rel |3  |24 |
|             |и сброс bit                                  |   |   |
|5. Команды передачи управления.                                     |
|ACALL addr11 |Вызов процедуры по адресу addr11             |2  |24 |
|LCALL addr16 |Вызов процедуры по адресу addr16             |3  |24 |
|RET          |Возврат из процедуры                         |1  |24 |
|RETI         |Возврат из процедуры обработки прерывания    |1  |24 |
|AJMP addr11  |Безусловный переход по адресу addr11         |2  |24 |
|LJMP addr16  |Безусловный переход по адресу addr16         |3  |24 |
|SJMP rel     |Безусловный переход по смещению rel          |2  |24 |
|JMP @A+DPTR  |Безусловный переход по смещению (A)          |1  |24 |
|             |относительно (DPTR)                          |   |   |
|JZ rel       |Условный переход, если равно 0, по смещению  |2  |24 |
|             |rel                                          |   |   |
|JNZ rel      |Условный переход, если не равно 0, по        |2  |24 |
|             |смещению rel                                 |   |   |
|CJNE         |Условный переход, если  (A) не равно         |3  |24 |
|A,direct,rel |(direct), по смещению rel                    |   |   |
|CJNE         |Условный переход, если  (A) не равно #data,  |3  |24 |
|A,#data,rel  |по смещению rel                              |   |   |
|CJNE         |Условный переход, если  (Rn) не равно #data, |3  |24 |
|Rn,#data,rel |по смещению rel                              |   |   |
|CJNE         |Условный переход, если  ( (Ri) ) не равно    |3  |24 |
|@Ri,#data,rel|#data, по смещению rel                       |   |   |
|DJNZ Rn,rel  |Декремент Rn  и условный переход, если не    |2  |24 |
|             |равно 0, по смещению rel                     |   |   |
|DJNZ         |Декремент direct и условный переход, если не |3  |24 |
|direct,rel   |равно 0, по смещению rel                     |   |   |
|NOP          |Пустой оператор.                             |1  |12 |



смотреть на рефераты похожие на "Микроконтроллеры семейства MCS51 Intel "