Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Савенко.doc
Скачиваний:
24
Добавлен:
02.04.2015
Размер:
765.44 Кб
Скачать

2.5 Описание команд

Общий формат команд :

Формат байт-ориентированных операций приведен на рисунке 2.1

13 8

7

6 0

Код операции

d

f (файл #)

Рисунок. 2.1 Формат байт-ориентированных операций

Формат бит-ориентированных операций приведен на рисунке 2.2

13 10

9 7

6 0

Код операции

b (бит#)

f (файл #)

Рисунок. 2.2 Формат бит-ориентированных операций

Формат литерных операций и операций управления приведен на рисунке 2.3

13 8

7 0

Код операции

k (литерал)

Рисунок. 2.3 Формат литерных операций и операций управления

ADDLW (Add literal to W) - Содержимое регистра W добавляется к 8-битовому литералу ‘k’ и результат помещается в регистр W.

ANDLW (AND Literal and W) - Содержимое регистра W логически умножается с 8-битовым литералом ‘k’. Результат помещается в регистр W/

ADDWF (Add W to f) - Сложение содержимого регистра W и регистра ‘f’. Если d равно 0, то результат запоминается в регистре W. Если d есть 1, то результат помещается в регистре ‘f’. ANDWF (AND W with f) - Сложение содержимого регистра W и регистра ‘f’. Если d есть 1, то результат помещается в регистре ‘f’.

BCF (Bit Clear f) - Очистка бита ‘b’ в регистре ‘f’.

BTFSC (Bit Test, skip if Clear) - Если бит ‘b’ в регистре равен 0, то следующая команда пропускается. Если бит ‘b’ равен 1, то следующая команда присоединяется к текущей команде и выполнение ее отменяется, а пустая операция выполняется взамен. Команда получается двухтактовой.

BSF (Bit Set f) - Установка бита ‘b’ в регистре ‘f’ в единицу.

BTFSS (Bit Test, skip if Set) - Если бит ‘b‘ в регистре ‘f’ равен 1, то следующая команда пропускается. Если бит ‘b’ есть 1, то следующая команда присоединяется к текущей команде и выполнение ее отменяется, а взамен выполняется пустая операция. Команда получается двухтактовой.

CLRF (Clear f) - Содержимое регистра ‘f’ очищается и бит Z устанавливается в единицу.

CALL (Subroutine Call) - Вызов подпрограммы. Адрес возврата (PC +1) помещается сверху в стек. 11 бит непосредственного адреса загружаются в биты (10; 0) счетчика команд PC. Старшие биты PC загружаются из PCLATH. Команда двухтактовая.

CLRW (Clear W Register) - Регистр W очищается. Бит Z устанавливается в 1.

CLRWDT (Clear Watching Timer) - Эта команда перезапускает сторожевой таймер. Она также перезапускает предделитель сторожевого таймера. Устанавливаются в единицу биты признаков TO\, PD\.

DECF (Decrement f) - Декремент в регистре W. Если d есть 1, то результат помещается в регистре ‘f’.

COMF (Complement f) - Содержимое регистра W инвертируется. Если d есть 1, то результат помещается в регистре ‘f’.

DECFSZ (Decrement f, skip if 0) - Содержимое регистра ‘f’ декрементируется. Если d есть 1, то результат помещается в регистре ‘f’. Если результат есть 0, следующая команда, которая уже присоединена, пропускается. Пустая операция выполняется, взамен, делая команду двухтактовой.

GOTO (Unconditional Branch) - Команда безусловного перехода. Непосредственное значение одиннадцати бит загружаются в биты PC< 10:0 >. Старшие биты загружаются из PCLATH<4: 3>. Команда двухтактовая.

INCFSZ (Increment f, skip if 0) - Содержимое регистра ‘f’ инкрементируется. Если d есть 1, то результат помещается в регистре ‘f’. Если результат равен 0, следующая команда, которая уже подсоединена, декрементируется, а взамен выполняется пустая операция, делая команду двухтактовой.

INCF (Increment f) - Содержимое регистра ‘f’ инкрементируется. Если d есть 1, то результат помещается в регистре ‘f’.

IORLW (Inclusive OR Literal with W) - Операция ИЛИ содержимого регистра W и 8-битового литерала ‘k’. Результат помещается в регистр W.

IORWF (Inclusive OR W with f) - Операция ИЛИ содержимого регистров W и ‘f’. Если d есть 1, то результат помещается в регистре ‘f’.

MOVF (Move f) - Содержимое регистра ‘f’ перемещается по назначению d. Если d =0, назначается регистр W. Если d =1, назначается сам файловый регистр. d=1 полезен для тестирования файлового регистра.

MOVLW (Move Literal to W) - Восьмибитовый литерал ‘k’ загружается в регистр W. Не надо осторожничать при ассемблировании 0.

MOVWF (Move W to f) - Перемещение данных из регистра W в регистр ‘f’.

NOP (No operation) - Нет операции.

RETFIE (Return from Interrupt) - Возврат от прерывания. Стек разгружается и верхушка стека (TOS) загружается в PC. Прерывания возможны установкой бита разрешения общего прерывания (Global Interrupt Enable GIE). GIE-бит разрешения общего прерывания. Это двухтактовая команда.

RETLW (Return Literal to W) - Регистр W загружается 8-битовым литералом ‘k’. Счетчик команд загружается из верха стека (возврат адреса). Это двухтактовая команда.

RETURN (Return from Subroutine) - Возврат из подпрограммы. Стек разгружается и верхушка стека (TOS) загружается в счетчик команд. Эта команда двухтактовая.

RTF (Rotate Right) - Содержимое регистра ‘f’ циклически сдвигается на один бит вправо через флаг переноса. Если d есть 1, то результат помещается в регистре ‘f’.

RLF (Rotate Left through Carry) - Содержимое регистра ‘f’ перемещается на один бит влево через флаг переноса. Если d есть 1, то результат помещается в регистре ‘f’.

SLEEP - Бит признака понижения мощности (PD\) очищается. Бит признака истечения времени (TO\) устанавливается в 1. Сторожевой таймер и его предделитель очищаются. Процессор переводится в режим спячки и генератор останавливается.

SUBLW (Subtract W from Literal) - Содержимое регистра W вычитается (методом дополнительного кода) из 8-битового литерала ‘k’. Результат помещается в регистр W.

SUBWF (Subtract W from f) - Вычитание (методом дополнительного кода) содержимого регистра W из содержимого регистра ‘f’. Если d есть 1, то результат помещается в регистре ‘f’.

SWAPF (Swap f) - Старшие и младшие части регистра ‘f’ обмениваются информацией. Если d есть 1, то результат помещается в регистре ‘f’.

XORLW (Exlusive OR Literal with W) - Выполняется операция ‘исключающее’ ИЛИ содержимого регистра W и 8-битового литерала ‘k’. Результат помещается в регистр W.

XORWF (Exlusive OR W with f) - Выполняется операция ‘исключающее’ ИЛИ содержимого регистра W и регистра ‘f’. Если d есть 1, то результат помещается в регистре ‘f’.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]