Читайте также: |
|
Синтаксис: CLRF f
Операнд: 0 <= f <= 31
Операція: 00h-> f, 1 -> Z
Біти стану: Z
Код: 0000 011f ffff
Опис: Вміст регістра f скидається в 0 і біт Z
встановлюється в 1.
Циклів: 1
Приклад: CLRF G_REG
Перед виконанням команди: G_REG = 0x5A
Після виконання команди: G_REG = 0x00 Z=1
CLRW Clear W
Скидання регістра W
Синтаксис: CLRW
Операнд: Немає.
Операція: 00h-> W, 1-> Z
Біти стану: Z
Код: 0000 0100 0000
Опис: Вміст регістра W скидається в 0 і біт Z встановлюється в 1.
Циклів: 1
Приклад: CLRW
Перед виконанням команди: W = 0x5A
Після виконання команди: W = 0x00 Z=1
CLRWDT Clear watchdog timer
Скидання сторожового таймера WDT
Синтаксис: CLRWDT
Операнд: Немає.
Операція: 00h -> WDT, 0-> WDT prescaler, 1 -> TO, 1 -> PD
Біти стану: ТЕ, PD
Код: 0000 0000 0100
Опис: Команда скидає сторожовий Таймер WDT і попередній дільник. У регістрі стану встановлюються біти ТЕ і PD.
Циклів: 1
Приклад: CLRWDT
Після виконання команди:
WDT counter = 0x00,
WDT prescaler = 0, T0 = 1, PD = 1
Примітка: Оскільки в Р1С16С52 сторожовий Таймер WDT відсутній, команда CLRWDT у цьому випадку буде виконуватися як NOР. Біти стану ТЕ і PD встановлюються в 1.
COMF Complement f
Інверсія регістра f
Синтаксис: COMF f,d
Операнди: 0 <= f <= 31, dє[0,1]
Операція: (f) -> (dest)
Біти стану: Z
Код: 0010 01df ffff
Опис: Вміст регістра f інвертується. Якщо d = 0, результат зберігається в регістрі W. Якщо d = 1, результат зберігається в тому ж регістрі f.
Циклів: 1
Приклад: COMF REG1, 0
Перед виконанням команди: REG1 = 0xl3
Після виконання команди: REG1 = 0xl3 W = 0xEC
DECF Decrement f
Декремент регістра f
Синтаксис: DECF f,d
Операнди: 0 <= f <= 31, dє[0,1]
Операція: (f) - 1-> (dest)
Біти стану: Z
Код: 0000 11df ffff
Опис: Регістр f зменшується на 1. Якщо d = 0, результат зберігається в регістрі W. Якщо d = 1, результат зберігається в тому ж регістрі f.
Циклів: 1
Приклад: DECF CNT, 1
Перед виконанням команди: CNT = 0х01 Z = 0
Після виконання команди: CNT = 0х00 Z = 1
DECFSZ Decrement f, Skip if 0
Декремент f, пропустити команду, якщо 0
Синтаксис: DECFSZ f,d
Операнди: 0 <= f <= 31, dє[0,1 ]
Операція: (f) – 1 -> (dest); пропустити, якщо (dest) = 0
Біти стану: Не змінюються.
КОД: 0010 11df ffff
Опис: Вміст регістра f зменшується на 1. Якщо d = 0, результат зберігається в регістрі W. Якщо d = 1, результат зберігається в тому ж регістрі f. Якщо результат не дорівнює 0, виконується така команда. Якщо результат дорівнює 0, то наступна команда, зчитувана в поточному командному циклі, ігнорується, і замість неї в такому циклі виконується NOP, у результаті команда виконується за два цикли.Циклів: 1(2)
Приклад: HERE DECFSZ CNT, 1
GOTO LOOP
CONTINUE
Перед виконанням команди: PC = адреса HERE
Після виконання команди: CNT = CNT-1
якщо СNT = 0, РС = адреса CONTINUE
якщо СNT <> 0, РС = адреса HERE + 1
GOTO Goto address
Дата добавления: 2014-12-18; просмотров: 67 | Поможем написать вашу работу | Нарушение авторских прав |