Obsluga
.pdf
|
|
|
|
|
|
SWAPF |
REG,0 |
|
|
|
|
||||
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
REG=0xA5 |
|
|
|
|
|
|
|
||||
|
|
|
|
W=x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
||||||||
|
|
|
|
REG=0xA5 |
|
|
|
|
|
|
|
||||
|
|
|
|
W=0x5A |
|
|
|
|
|
|
|
||||
|
SWAPF |
f, d |
|
|
|
|
SWAPF |
REG,1 |
|
|
|
|
|||
|
Поменять местами старший и младший |
До выполнения |
|
|
|
|
|
|
|
||||||
|
|
|
полубайты регистра f. |
REG=0xA5 |
|
|
|
|
|
|
|
||||
|
Поменять |
|
После выполнения |
|
|
|
|||||||||
|
местами |
Если d=0 – результат сохраняется в регистре |
REG=0x5A |
|
|
|
|
1 |
|
|
|||||
|
полубайты |
W. |
|
Косвенная адресация |
|
|
|
||||||||
|
в f |
|
Если d=1 – результат сохраняется в регистре |
|
|
|
SWAPF |
INDF,1 |
|
|
|
|
|||
|
|
|
f. |
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
||||
|
|
|
|
FSR=0xC2 (значение |
|
|
|
||||||||
|
|
|
|
Регистра с адресом в |
|
|
|
||||||||
|
|
|
|
FSR=0x20 |
|
|
|
|
|
|
|
||||
|
|
|
|
После выполнения |
|
|
|
||||||||
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
||||
|
|
|
|
FSR=0xC2 (значение |
|
|
|
||||||||
|
|
|
|
Регистра с адресом в |
|
|
|
||||||||
|
|
|
|
FSR=0x02 |
|
|
|
|
|
|
|
||||
|
|
|
Сравнение содержимого регистров |
|
|
|
XORWF |
REG,1 |
|
|
|
||||
|
|
|
W и f (проверка на одинаковость) |
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
REG=0xAF |
|
|
|
|
|
|
|
||||
|
|
|
|
W=0xB5 |
|
|
|
|
|
|
|
||||
|
|
|
|
После выполнения |
|
|
|
||||||||
|
|
|
|
REG=0x1A |
|
|
|
|
|
|
|
||||
|
|
|
|
W=0xB5 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
XORWF |
REG,0 |
|
|
|
||||
|
XORWF |
f, d |
|
До выполнения |
|
|
|
|
|
|
|
||||
|
Побитное “Исключающее “ИЛИ” |
REG=0xAF |
|
|
|
|
|
|
|
||||||
|
Побитное “ис- |
содержимого регистров W и f. |
W=0xB5 |
|
|
|
|
1 |
|
Z |
|||||
|
|
После выполнения |
|
||||||||||||
|
ключающее |
Если d=0 – результат сохраняется в регистре |
REG=0xAF |
|
|
|
|
|
|
|
|||||
|
ИЛИ” |
W. |
W=0x1A |
|
|
|
|
|
|
|
|||||
|
W и f |
Если d=1 – результат сохраняется в регистре |
|
Косвенная адресация |
|
|
|
||||||||
|
|
|
f. |
|
|
|
XORWF |
INDF,1 |
|
|
|
||||
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
W=0xB5 |
|
|
|
|
|
|
|
||||
|
|
|
|
FSR=0xC2 (значение регистра |
|
|
|
||||||||
|
|
|
|
с адресом в |
|
|
|
|
|
|
|
||||
|
|
|
|
FSR=0xAF) |
|
|
|
|
|
|
|
||||
|
|
|
|
После выполнения |
|
|
|
||||||||
|
|
|
|
W=0xB5 |
|
|
|
|
|
|
|
||||
|
|
|
|
FSR=0xC2 (значение регистра |
|
|
|
||||||||
|
|
|
|
с адресом в |
|
|
|
|
|
|
|
||||
|
|
|
|
FSR=0x1A) |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
Бит - ориентированные команды |
|
|
|
|
(b-от 0 до 7) |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BCF |
REG,7 |
|
|
|
|||
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
REG=0xC7-11000111 |
|
|
|
||||||||
|
BCF |
f, b |
|
После выполнения |
|
|
|
||||||||
|
|
REG=0x4701000111 |
|
|
|
||||||||||
|
|
|
|
|
Косвенная адресация |
|
|
|
|||||||
|
Установить |
Очистить бит b в регистре f |
|
|
|
|
BCF |
INDF,3 |
|
|
|
|
|||
|
в “0” бит в |
|
До выполнения |
|
|
|
|
1 |
|
|
|||||
|
регистре f |
|
W=0x17 |
|
|
|
|
|
|
|
|||||
|
|
|
|
FSR=0xC2 (значение регистра |
|
|
|
||||||||
|
|
|
|
с адресом в |
|
|
|
|
|
|
|
||||
|
|
|
|
FSR=0x2F) |
|
|
|
|
|
|
|
||||
|
|
|
|
После выполнения |
|
|
|
||||||||
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
||||
|
|
|
|
FSR=0xC2 (значение регистра |
|
|
|
||||||||
|
|
|
|
с адресом в |
|
|
|
|
|
|
|
||||
|
|
|
|
FSR=0x27) |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
|
|
|
|
|
|
|
BSF |
REG,7 |
|
|
|
|||
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|||
|
|
|
|
|
REG=0x0A00001010 |
|
|
|
|||||||
|
BSF f, b |
|
|
После выполнения |
|
|
|
||||||||
|
|
|
REG=0x8A10001010 |
|
|
|
|||||||||
|
Установить |
Установить бит b |
в регистре f |
Косвенная адресация |
|
|
|
||||||||
|
в “1” бит в |
|
|
|
BSF |
INDF,3 |
|
|
1 |
|
|||||
|
регистре f |
|
|
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
FSR=0xC2 (значение регистра |
|
|
|
|||||||
|
|
|
|
|
с адресом в |
|
|
|
|
|
|
|
|||
|
|
|
|
|
FSR=0x20) |
|
|
|
|
|
|
|
|||
|
|
|
|
|
После выполнения |
|
|
|
|||||||
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
FSR=0xC2 (значение регистра |
|
|
|
|||||||
|
|
|
|
|
с адресом в |
|
|
|
|
|
|
|
|||
|
|
|
|
|
FSR=0x28) |
|
|
|
|
|
|
|
|||
|
|
|
|
|
HERE |
|
|
BTFSC |
FLAG,4 |
|
|
|
|||
|
|
|
|
|
FALSE GOTO |
ABC |
|
|
|
||||||
|
BTFSC |
f, b |
Если бит b в регистре f |
=1, |
TRUE . |
|
|
|
|
|
|
|
|||
|
|
. |
|
|
|
|
|
|
|
||||||
|
|
|
исполняется следующая инструкция |
1) До выполнения |
|
|
|
||||||||
|
Проверить бит |
Если бит b в регистре f =0, |
PC=адрес HERE |
|
|
|
|||||||||
|
b в регистре f, |
то следующая инструкция |
FLAG=xxx0xxxx |
|
|
|
|
|
1(2) |
|
|||||
|
если b=0, то |
не выполняется, а команда |
После выполнения |
|
|
|
|||||||||
|
пропустить |
выполняется за 2 цикла |
|
Т.к. FLAG<4>=0, |
|
|
|
||||||||
|
следующую |
(во 2-м цикле выполняется NOP) |
PC=адрес TRUE |
|
|
|
|||||||||
|
инструкцию |
|
|
2) До выполнения |
|
|
|
||||||||
|
|
|
|
|
PC=адрес HERE |
|
|
|
|||||||
|
|
|
|
|
FLAG=xxx1xxxx |
|
|
|
|
|
|
|
|||
|
|
|
|
|
После выполнения |
|
|
|
|||||||
|
|
|
|
|
Т.к. FLAG<4>=1, |
|
|
|
|||||||
|
|
|
|
|
PC=адрес FALSE |
|
|
|
|||||||
|
|
|
|
|
HERE |
|
|
BTFSS |
FLAG,4 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
FALSE GOTO |
ABC |
|
|
|
||||||
|
BTFSS |
f, b |
|
|
|
. |
|
|
|
|
|
|
|
||
|
Если бит b в регистре f=0, |
|
. |
|
|
|
|
|
|
|
|||||
|
|
|
исполняется следующая инструкция |
1) До выполнения |
|
|
|
||||||||
|
Проверить бит |
Если бит b в регистре f=1, |
PC=адрес HERE |
|
|
|
|||||||||
|
b в регистре f, |
то следующая инструкция |
FLAG=xxx0xxxx |
|
|
|
|
|
1(2) |
|
|||||
|
если b=1, то |
не выполняется, а команда |
После выполнения |
|
|
|
|||||||||
|
пропустить |
выполняется за 2 цикла |
|
Т.к. FLAG<4>=0, |
|
|
|
||||||||
|
следующую |
(во 2-м цикле выполняется NOP) |
PC=адрес FALSE |
|
|
|
|||||||||
|
инструкцию |
|
|
2) До выполнения |
|
|
|
||||||||
|
|
|
|
|
PC=адрес HERE |
|
|
|
|||||||
|
|
|
|
|
FLAG=xxx1xxxx |
|
|
|
|
|
|
|
|||
|
|
|
|
|
После выполнения |
|
|
|
|||||||
|
|
|
|
|
Т.к. FLAG<4>=1, |
|
|
|
|||||||
|
|
|
|
|
PC=адрес TRUE |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
Команды операций с константами |
|
|
|
( k – от 0 до 255 ) |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ADDLW |
0x15 |
|
|
|
|
|||
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|||
|
|
|
|
|
W=0x10 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
После выполнения |
|
|
|
|||||||
|
|
|
|
|
W=0x25 |
|
|
|
|
|
|
|
|||
|
ADDLW |
k |
|
|
|
|
|
ADDLW |
REG |
|
|
|
|||
|
Содержимое регистра W |
|
|
|
|
|
|
|
|
|
|||||
|
До выполнения |
|
|
|
|
|
|
|
|||||||
|
|
|
складывается с 8 – разрядной |
W=0x10 |
|
|
|
|
|
|
|
||||
|
Сложить |
константой k. |
REG=0x37(адрес ре- |
|
1 |
C,DC,Z |
|||||||||
|
константу |
Результат сохраняется в регистре W |
гистра) |
|
|
|
|
|
|
|
|||||
|
с W |
|
После выполнения |
|
|
|
|||||||||
|
|
|
|
|
W=0x47 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
|
|
ADDLW HIGH(LU_TAB) |
|
|
||||||
|
|
|
До выполнения |
|
|
|
|
|
|||
|
|
|
W=0x10 |
|
|
|
|
|
|||
|
|
|
LU_TAB=0x9375 (ад- |
|
|
||||||
|
|
|
рес в памяти про- |
|
|
|
|
|
|||
|
|
|
грамм) |
|
|
|
|
|
|||
|
|
|
После выполнения |
|
|
||||||
|
|
|
W=0xA3 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SUBLW |
0x02 |
|
|
||
|
|
|
До выполнения |
|
|
|
|
|
|||
|
|
|
W=0x01 |
|
|
|
|
|
|||
|
|
|
C=? |
|
|
|
|
|
|||
|
|
|
Z=? |
|
|
|
|
|
|||
|
|
|
После выполнения |
|
|
||||||
|
|
|
W=0x01 |
|
|
|
|
|
|||
|
|
|
C=1 (результат + ) |
|
|
||||||
SUBLW |
k |
|
Z=0 |
|
|
|
1 |
|
|||
Вычесть содержимое регистра W |
|
|
|
SUBLW |
0x02 |
C,DC,Z |
|||||
|
|
из 8 – разрядной константы k. |
До выполнения |
|
|
|
|
|
|||
Вычесть W |
|
W=0x03 |
|
|
|
|
|
||||
из |
|
Результат сохраняется в регистре W. |
C=? |
|
|
|
|
|
|||
константы |
|
Z=? |
|
|
|
|
|
||||
|
|
|
После выполнения |
|
|
||||||
|
|
|
W=0xFF |
|
|
|
|
|
|||
|
|
|
C=0 (результат - ) |
|
|
|
|
|
|||
|
|
|
Z=0 |
|
|
|
|
|
|||
|
|
|
|
|
SUBLW |
0x02 |
|
|
|
||
|
|
|
До выполнения |
|
|
|
|
|
|||
|
|
|
W=0x02 |
|
|
|
|
|
|||
|
|
|
C=? |
|
|
|
|
|
|||
|
|
|
Z=? |
|
|
|
|
|
|||
|
|
|
После выполнения |
|
|
||||||
|
|
|
W=0x00 |
|
|
|
|
|
|||
|
|
|
C=1 ( “0”- результат) |
|
|
||||||
|
|
|
Z=1 |
|
|
|
|
|
|||
|
|
|
|
|
|
SUBLW |
REG |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|||
|
|
|
W=0x10 |
|
|
|
|
|
|||
|
|
|
REG=0x37 (адрес |
|
|
|
|
|
|||
|
|
|
регистра) |
|
|
|
|
|
|||
|
|
|
После выполнения |
|
|
||||||
|
|
|
W=0x27 |
|
|
|
|
|
|||
|
|
|
C=1 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
MOVLW |
0x5A |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|||
|
|
|
W=0x10 (любое) |
|
|
|
|
|
|||
MOVLW |
k |
|
После выполнения |
|
|
||||||
|
W=0x5A |
|
|
|
|
|
|||||
Переслать |
Переслать константу k в регистр W |
|
|
|
MOVLW |
REG |
|
1 |
|
||
константу |
|
До выполнения |
|
|
|
|
|||||
в W |
|
В неиспользуемых битах ассемблер |
W=0x10 |
|
|
|
|
|
|||
|
|
устанавливает 0 |
REG=0x37 (адрес |
|
|
|
|
|
|||
|
|
|
регистра) |
|
|
|
|
|
|||
|
|
|
После выполнения |
|
|
||||||
|
|
|
W=0x37 |
|
|
|
|
|
|||
|
|
|
Z=0 |
|
|
|
|
|
|||
|
|
|
MOVLW HIGH(LU_TAB) |
|
|
||||||
|
|
|
До выполнения |
|
|
|
|
|
|||
|
|
|
W=0x10 |
|
|
|
|
|
|||
|
|
|
LU_TAB=0x9375 (адрес в |
|
|
||||||
|
|
|
памяти программ) |
|
|
|
|
|
|||
|
|
|
После выполнения |
|
|
||||||
|
|
|
W=0x93 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
43
ANDLW 0x5F (01011111)
До выполнения
W=0xA3 (10100011)
После выполнения
W=0x03 (00000011)
ANDLW k |
|
|
|
|
|
Выполняется побитное “И” содержимого |
ANDLW |
REG |
|
|
регистра W и 8 – разрядной |
До выполнения |
1 |
Z |
Побитное |
константы k. |
W=0xA3 |
|
|
“И” |
|
REG=0x37 (адрес |
|
|
константы |
Результат сохраняется в регистре W |
регистра) |
|
|
и W |
|
После выполнения |
|
|
|
|
W=0x23 |
|
|
ANDLW HIGH(LU_TAB)
До выполнения
W=0xA3
LU_TAB=0x9375 (адрес в памяти программ) После выполнения
W=0x83
|
|
|
|
IORLW |
0x35 |
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
W=0x9A |
|
|
|
|
||
|
|
После выполнения |
|
|||||
IORLW k |
|
W=0xBF |
|
|
|
|
||
Выполняется побитное “ИЛИ” содержимого Z=0 |
|
|
|
|
||||
|
регистра W и 8 – разрядной константы k. |
|
|
|
1 |
Z |
||
Побитное |
Результат сохраняется в регистре W. |
|
|
IORLW |
REG |
|
||
До выполнения |
|
|
|
|
||||
“ИЛИ” |
|
|
|
|
|
|||
|
W=0x9A |
|
|
|
|
|||
константы |
|
|
|
|
|
|||
|
REG=0x37 (адрес |
|
|
|
|
|||
и W |
|
|
|
|
|
|||
|
регистра) |
|
|
|
|
|||
|
|
|
|
|
|
|||
|
|
После выполнения |
|
|||||
|
|
W=0x9F |
|
|
|
|
||
|
|
Z=0 |
|
|
|
|
||
|
|
IORLW HIGH(LU_TAB) |
|
|||||
|
|
До выполнения |
|
|
|
|
||
|
|
W=0x9A |
|
|
|
|
||
|
|
AB=0x9375 (адрес в |
|
|||||
|
|
памяти программ) |
|
|||||
|
|
После выполнения |
|
|||||
|
|
W=0x9B |
|
|
|
|
||
|
|
|
IORLW |
0x00 |
|
|
||
|
|
До выполнения |
|
|
|
|
||
|
|
W=0x00 |
|
|
|
|
||
|
|
После выполнения |
|
|||||
|
|
W=0x00 |
|
|
|
|
||
|
|
Z=1 |
|
|
|
|
44
|
|
|
Сравнение содержимого регистра W |
XORLW 0xAF(10101111) |
|
|
|
|||
|
|
|
До выполнения |
|
|
|
|
|
||
|
|
|
и константы (проверка на одинако- |
W=0xB5 (10110101) |
|
|
|
|||
|
|
|
вость) |
После выполнения |
|
|
|
|||
|
|
|
|
W=0x1A (00011010) |
|
|
|
|||
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
|
XORLW |
REG |
|
|
|
||
|
XORLW |
k |
|
До выполнения |
|
|
|
|
|
|
|
|
W=0xAF |
|
|
|
|
|
|||
|
|
|
Выполняется побитное |
|
|
|
|
|
||
|
|
|
REG=0x37 (адрес |
|
|
|
||||
|
Побитное |
“Исключающее ИЛИ” содержимого регистра |
1 |
|
Z |
|||||
|
регистра) |
|
|
|
||||||
|
“Исключаю- |
W и 8 – разрядной константы k. |
|
|
|
|
|
|||
|
После выполнения |
|
|
|
||||||
|
щее ИЛИ” |
|
|
|
|
|||||
|
Результат сохраняется в регистре W. |
W=0x18 |
|
|
|
|
|
|||
|
константы |
|
|
|
|
|
||||
|
Z=0 |
|
|
|
|
|
||||
|
и W |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
XORLW HIGH(LU_TAB) |
|
|
|
|||
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
W=0xAF |
|
|
|
|
|
|
|
|
|
|
LU_TAB=0x9375 (адрес в |
|
|
|
|||
|
|
|
|
памяти программ) |
|
|
|
|||
|
|
|
|
После выполнения |
|
|
|
|||
|
|
|
|
W=0x3C |
|
|
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Команды управления |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
CALL |
|
Вызов подпрограммы. |
HERE CALL ABC |
|
|
|
|||
|
|
|
Адрес следующей инструкции (PC+1) |
|
|
|
||||
|
Вызов |
|
До выполнения |
|
|
|
|
|
||
|
подпрограм- |
помещается в вершину стека (TOS). |
PC=адрес HERE |
|
|
2 |
|
|
||
|
мы |
|
11 бит адреса загружаются из кода |
После выполнения |
|
|
|
|||
|
(переход по |
команды в счетчик команд |
PC=адрес ABC |
|
|
|
|
|
||
|
коду коман- |
PC<10:0>. |
TOS=адрес HERE+1 |
|
|
|
||||
|
ды с усло- |
2 старших бита загружаются в |
|
|
|
|
|
|
|
|
|
вием (стек)) |
счетчик команд PC<12:11> из регистра |
|
|
|
|
|
|
|
|
|
|
|
PCLATH. |
|
|
|
|
|
|
|
|
GOTO |
k |
Выполнить безусловный переход. |
|
GOTO |
ABC |
|
|
|
|
|
|
|
11 бит адреса загружаются из кода |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|||
|
Переход по |
После выполнения |
|
|
|
|||||
|
коду коман- |
команды в счетчик команд |
PC= адрес ABC |
|
|
2 |
|
|
||
|
ды без |
|
PC<10:0>. |
|
|
|
|
|
|
|
|
условия |
|
2 старших бита загружаются в |
|
|
|
|
|
|
|
|
|
|
счетчик команд PC<12:11> |
|
|
|
|
|
|
|
|
|
|
из регистра PCLATH. |
|
|
|
|
|
|
|
|
RETURN |
Возврат из подпрограммы. |
|
RETURN |
2 |
|
|
|||
|
|
|
|
После выполнения |
|
|
||||
|
Возврат из |
Вершина стека (TOS) загружается в |
PC=TOS(адрес из |
|
|
|
||||
|
подпрограм- |
счетчик команд PC. |
стека) |
|
|
|
|
|
||
|
мы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CALL |
TABLE |
|
|
|
|
|
RETLW |
k |
|
. |
|
|
|
|
|
|
|
В регистр W загружается 8-разряд- |
. |
|
|
|
|
|
|||
|
|
|
TABLE ADDWF |
PCL,1 |
|
|
|
|||
|
Возврат из |
ная константа. |
|
RETLW |
k1 |
|
|
|
||
|
подпрограм-мы |
Вершина стека (TOS) загружается в счетчик |
|
RETLW |
k2 |
|
|
|
||
|
с загрузкой |
команд PC. |
. |
|
|
2 |
|
|
||
|
константы |
|
. |
|
|
|
|
|
||
|
в W |
|
|
|
RETLW |
kn |
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
W=0x07 |
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|||
|
|
|
|
W=значение k8 |
|
|
|
|
|
|
|
|
|
|
PC=TOS=адресHERE+1 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
RETFIE |
Возврат из подпрограммы обработки |
|
|
|
|
прерываний. |
RETFIE |
|
|
Возврат из |
Вершина стека (TOS) загружается |
После выполнения |
2 |
|
подпрограм- |
в счетчик команд PC. |
PC=TOS |
|
|
мы с |
Устанавливается в “1” флаг глобаль- |
GIE=1 |
|
|
разрешением |
ного разрешения прерываний |
|
|
|
прерываний |
GIE (INTCON<7>). |
|
|
|
|
|
CLRWDT |
|
|
CLRWDT |
|
До выполнения |
|
|
Сбрасывает WDT и предделитель |
Счетчик WDT-? |
|
|
|
|
(если он подключен к WDT). |
Счетчик делителя |
|
|
Очистить |
|
WDT=1:128 |
|
|
WDT |
В регистре STATUS устанавливает |
После выполнения |
1 |
-TO |
(сторожевой |
биты –TO и -PD. |
Счетчик WDT=0 |
|
-PD |
таймер) |
На коэффициент делителя WDT |
Счетчик делителя |
|
|
|
не влияет |
WDT=0 |
|
|
|
|
-TO=1 |
|
|
|
|
-PD=1 |
|
|
|
|
Делитель WDT=1:128 |
|
|
SLEEP |
Сбросить флаг включения питания |
|
|
|
-PD в “0”. |
|
|
|
|
|
Установить флаг переполнения |
|
|
|
Перейти |
WDT -TO в “1”. |
SLEEP |
1 |
-TO |
в режим |
Очистить таймер WDT и его |
|
|
-PD |
SLEEP |
предделитель. |
|
|
|
|
Перевести микроконтроллер в |
|
|
|
|
режим SLEEP и выключить |
|
|
|
|
тактовый генератор. |
|
|
|
|
Переслать содержимое регистра W |
|
|
|
OPTION |
в регистр OPTION. |
|
|
|
Инструкция поддерживается для |
OPTION |
|
|
|
|
совместимости программы с семейством |
|
|
|
|
PIC16C5x. |
|
|
|
|
Запись-чтение регистра OPTION |
|
|
|
|
можно выполнить прямой или косвенной |
|
|
|
|
адресацией. |
|
|
|
|
Не рекомендуется использовать для |
|
|
|
|
совместимости программного обеспе- |
|
|
|
|
чения с последующими выпуска- |
|
|
|
|
емыми PIC16Cxx. |
|
|
|
TRIS |
Переслать содержимое регистра W |
|
|
|
в регистр TRIS. |
TRIS |
|
|
|
|
См. комментарии для команды |
|
|
|
|
OPTION |
|
|
|
46
Приложение №11
КОМАНДЫ АССЕМБЛЕРА ДЛЯ ПИКов (вариант с ошибками №2)
|
|
МНЕМОНИКА |
ОПИСАНИЕ |
|
|
|
ПРИМЕРЫ |
Цикл |
Флаги |
|||||
|
|
|
|
Байт-ориентированные |
команды |
|
|
|
|
|
|
|||
|
|
ADDWF f, d |
Сложить содержимое регистров W и f. |
ADDWF REG,0 |
|
|
||||||||
|
|
|
До выполнения |
|
|
|
|
|
|
|||||
|
|
|
|
Если d=0, результат сохраняется в |
W=0x17 |
|
|
|
|
|
|
|||
|
|
|
|
регистре W. |
REG=0xC2 |
|
|
|
|
|
|
|||
|
|
Сложение |
|
Если d=1, результат сохраняется в |
После выполнения |
|
|
|||||||
|
|
W и f |
|
регистре f. |
W=0xD9 |
|
|
|
|
|
|
|||
|
|
|
|
Косвенная адресация: для ее выполнения |
REG=0xC2 |
|
|
|
|
|
|
|||
|
|
|
|
Косвенная адресация |
|
|
||||||||
|
|
|
|
необходимо обратиться к регистру INDF. |
|
ADDWF |
INDF,1 |
|
|
|
||||
|
|
|
|
Оно вызовет действие с регистром, адрес |
До выполнения |
|
|
|
|
|
|
|||
|
|
|
|
которого указан в FSR. |
W=0x17 |
|
|
|
|
|
|
|||
|
|
|
|
Косвенная запись в регистр INDF не вызовет |
FSR=0xC2 (по этому |
|
|
|||||||
|
|
|
|
никаких действий (кроме воздействия на флаги |
адресу “лежит” число 0x20) |
1 |
C,DC,Z |
|||||||
|
|
|
|
в регистре STATUS). |
После выполнения |
|
|
|||||||
|
|
|
|
Косвенное чтение INDF (FSR=0) даст результат |
W=0x17 |
|
|
|
|
|
|
|||
|
|
|
|
00h. |
FSR=0xC2 (по этому |
|
|
|||||||
|
|
|
|
9-й бит косвенного адреса (IRP) сохраняется в |
адресу “лежит” число 0х37) |
|
|
|||||||
|
|
|
|
регистре STATUS<7>. |
Вычисляемый переход |
|
|
|||||||
|
|
|
|
Изменение адреса счетчика команд PC |
|
|
ADDWF |
PCL,1 |
|
|
|
|||
|
|
|
|
(вычисляемый переход) выполняется командой |
До выполнения |
|
|
|
|
|
|
|||
|
|
|
|
приращения к регистру PCL (ADDWF PCL,F). |
W=0x10 |
|
|
|
|
|
|
|||
|
|
|
|
При этом необходимо следить, чтобы при |
PCL=0x37 |
|
|
|
|
|
|
|||
|
|
|
|
исполнении вычисляемого перехода не |
После выполнения |
|
|
|||||||
|
|
|
|
происходило пересечения границы блока |
PCL=0x47 |
|
|
|
|
|
|
|||
|
|
|
|
памяти программ (256 слов). |
C=0 |
|
|
|
|
|
|
|||
|
|
|
|
PCL – младший байт (8 бит <7:0>) счетчика |
|
|
|
ADDWF |
PCL,1 |
|
|
|
||
|
|
|
|
команд (PC), доступен для чтения и записи. |
До выполнения |
|
|
|
|
|
|
|||
|
|
|
|
PCH – старший байт (5 бит <12:8>) счетчика |
W=0x10 |
|
|
|
|
|
|
|||
|
|
|
|
команд PC, не доступен для чтения и записи. |
PCL=0xF7 |
|
|
|
|
|
|
|||
|
|
|
|
Все операции с PCH происходят через |
PCH=0x08 |
|
|
|
|
|
|
|||
|
|
|
|
дополнительный регистр PCLATH. |
После выполнения |
|
|
|||||||
|
|
|
|
В случае вычисляемого перехода, при |
PCL=0x07 |
|
|
|
|
|
|
|||
|
|
|
|
переполнении PCL, инкремента PCH не |
PCH=0x08 |
|
|
|
|
|
|
|||
|
|
|
|
происходит. |
C=1 |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
ANDWF |
REG,1 |
|
|
|||
|
|
ANDWF f, d |
|
До выполнения |
|
|
|
|
|
|
||||
|
|
Выполняется побитное “И” содержимого |
W=0x17 |
|
|
|
|
|
|
|||||
|
|
|
|
регистров W и f. |
REG=0xC2 |
|
|
|
|
|
|
|||
|
|
|
|
|
После выполнения |
|
|
|||||||
|
|
Побитное И |
|
Если d=0, результат сохраняется в |
W=0x17 |
|
|
|
|
1 |
Z |
|||
|
|
W и f |
|
регистре W. |
REG=0x02 |
|
|
|
|
|
|
|||
|
|
|
|
Если d=1, результат сохраняется в |
|
|
|
ANDWF |
REG,0 |
|
|
|||
|
|
|
|
регистре f. |
До выполнения |
|
|
|
|
|
|
|||
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|||
|
|
|
|
|
REG=0xC2 |
|
|
|
|
|
|
|||
|
|
|
|
|
После выполнения |
|
|
|||||||
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|||
|
|
|
|
|
REG=0xC2 |
|
|
|
|
|
|
|||
|
|
|
|
|
Косвенная адресация |
|
|
|||||||
|
|
|
|
|
|
|
|
ANDWF |
INDF,1 |
|
|
|||
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|||
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|||
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|||||||
|
|
|
|
|
адресу “лежит” число |
|
|
|||||||
|
|
|
|
|
0х5А) |
|
|
|
|
|
|
|||
|
|
|
|
|
После выполнения |
|
|
|||||||
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|||
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|||||||
|
|
|
|
|
адресу “лежит” число 0х15) |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47
|
|
CLRF |
f |
|
|
CLRF |
REG |
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
Очистить содержимое регистра f |
REG=0x5A |
|
1 |
|
Z |
|
|
|
|
|
|
|
|||||
|
|
Очистить f |
|
|
и установить флаг Z |
После выполнения |
|
||||
|
|
|
|
|
REG=0x00, Z=1 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Косвенная адресация |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
CLRF |
INDF |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
|
|
|
|
|
|
|
|
адресу “лежит” число |
|
|
|
|
|
|
|
|
|
|
|
0хАА) |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
|
|
|
|
|
|
|
|
адресу “лежит” число 0х00) |
|
|
|
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
CLRW |
|
|
CLRW |
|
|
|
|||
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
Очистить содержимое регистра W |
W=0x5A |
|
1 |
|
Z |
|
|
Очистить W |
|
|
и установить флаг Z |
После выполнения |
|
|
|
||
|
|
|
|
|
|
|
W=0x00 |
|
|
|
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
COMF |
REG,0 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0x13 |
|
|
|
|
|
|
COMF |
f, d |
|
|
После выполнения |
|
|
|
||
|
|
|
Инвертировать все биты в регистре f |
REG=0x13 |
|
|
|
|
|||
|
|
|
|
|
|
|
W=0xEC |
|
|
|
|
|
|
|
|
|
|
Если d=0, результат сохраняется в |
COMF |
REG,1 |
1 |
|
Z |
|
|
Инвертировать |
|
|
регистре W. |
До выполнения |
|
|
|
||
|
|
f |
|
|
|
Если d=1, результат сохраняется в |
REG=0xFF |
|
|
|
|
|
|
|
|
|
|
регистре f |
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0x00 |
|
|
|
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
|
|
|
Косвенная адресация |
|
|
|
|
|
|
|
|
|
|
|
COMF |
INDF,1 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
|
|
|
|
|
|
|
|
адресу “лежит” число |
|
|
|
|
|
|
|
|
|
|
|
0хАА) |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
|
|
|
|
|
|
|
|
адресу “лежит” число 0х55) |
|
|
|
|
|
|
|
|
|
|
|
DECF |
REG,1 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0x01 |
|
|
|
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0x00 |
|
|
|
|
|
|
DECF |
f, d |
|
Декремент содержимого регистра f |
Z=1 |
|
|
|
|
|
|
|
|
Если d=0, результат сохраняется в |
DECF |
REG,0 |
|
|
|
|||
|
|
|
|
|
|
До выполнения |
|
|
|
||
|
|
|
|
|
|
регистре W. |
REG=0x10 |
|
1 |
|
Z |
|
|
Вычесть1 из f |
|
|
Если d=1, результат сохраняется в |
W=x, Z=0 |
|
|
|||
|
|
|
|
|
|
регистре f. |
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0x10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
W=0x0F, Z=0 |
|
|
|
|
|
|
|
|
|
|
|
Косвенная адресация |
|
|
|
|
|
|
|
|
|
|
|
DECF |
INDF,1 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
|
|
|
|
|
|
|
|
адресу “лежит” число 0х01) |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
|
|
|
|
|
|
|
|
адресу “лежит” число 0х00) |
|
|
|
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48
|
|
DECFSZ |
f, d |
|
Декремент содержимого регистра f с |
LOOP |
DECFSZ |
REG,1 |
|
|
|
||
|
|
|
|
|
ветвлением |
|
|
GOTO |
LOOP |
|
|
|
|
|
|
|
|
|
Если d=0, результат сохраняется в регистре W. |
1) |
|
CONTINUE .... |
|
|
|
||
|
|
Вычесть |
|
До выполнения |
|
|
|
|
|||||
|
|
1 из f с |
|
Если d=1, результат сохраняется в регистре f. |
REG=0x01 |
|
|
|
|
|
|||
|
|
ветвлением |
|
Если результат не равен 0, то исполняется |
После выполнения |
|
1(2) |
|
|
||||
|
|
|
|
|
следующая инструкция. |
REG=0x00 |
|
|
|
|
|
||
|
|
|
|
|
Если результат = 0, то следующая инструкция |
PC=адрес CONTINUE |
|
|
|
||||
|
|
|
|
|
не исполняется (пропускается, вместо нее |
2) |
До выполнения |
|
|
|
|
||
|
|
|
|
|
исполняется “виртуальный” NOP), а команда |
REG=0x02 |
|
|
|
|
|
||
|
|
|
|
|
выполняется за 2 цикла. |
После выполнения |
|
|
|
|
|||
|
|
|
|
|
|
REG=0x01 |
|
|
|
|
|
||
|
|
|
|
|
|
Переход на LOOP |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1) |
|
INCF |
REG,1 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|||
|
|
|
|
|
|
REG=0xFF |
|
|
|
|
|
||
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|||
|
|
|
|
|
|
REG=0x00 |
|
|
|
|
|
||
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2) |
|
INCF |
REG,0 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|||
|
|
INCF |
f, d |
|
|
REG=0x10 |
|
|
|
|
|
||
|
|
|
Инкремент содержимого регистра f |
W=x |
|
|
|
|
|
|
|||
|
|
|
|
|
Если d=0, результат сохраняется в |
Z=0 |
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
||||
|
|
Прибавить |
|
регистре W. |
REG=0x10 |
|
|
1 |
|
Z |
|||
|
|
1 к f |
|
Если d=1, результат сохраняется в |
W=0x11 |
|
|
|
|
|
|||
|
|
|
|
|
регистре f. |
Z=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Косвенная адресация |
|
|
|
|||
|
|
|
|
|
|
|
|
INCF |
INDF,1 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|||
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
||||
|
|
|
|
|
|
адресу “лежит” число |
|
|
|
||||
|
|
|
|
|
|
0xFF) |
|
|
|
|
|
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|||
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
||||
|
|
|
|
|
|
адресу “лежит” число 0х00) |
|
|
|
||||
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
LOOP |
INCFSZ REG,1 |
|
|
|
|||
|
|
INCFSZ f, d |
|
Инкремент содержимого регистра f с |
|
|
GOTO LOOP |
|
|
|
|||
|
|
|
ветвлением |
|
|
CONTINUE ........ |
|
|
|
||||
|
|
|
|
|
|
1) |
До выполнения |
|
|
|
|
||
|
|
|
|
|
Если d=0, результат сохраняется в регистре W. |
REG=0xFF |
|
|
|
|
|
||
|
|
Прибавить |
|
Если d=1, результат сохраняется в регистре f. |
После выполнения |
|
|
|
|
||||
|
|
1 к f |
с |
|
Если результат не равен 0, то исполняется |
REG=0x00 |
|
|
|
|
|
||
|
|
ветвлением |
|
следующая инструкция. |
PC=адрес CONTINUE |
1(2) |
|
|
|||||
|
|
|
|
|
Если результат = 0, то следующая инструкция |
2) |
До выполнения |
|
|
|
|
||
|
|
|
|
|
не исполняется (пропускается, вместо нее |
REG=0x02 |
|
|
|
|
|
||
|
|
|
|
|
исполняется “виртуальный” NOP), а команда |
После выполнения |
|
|
|
|
|||
|
|
|
|
|
выполняется за 2 цикла. |
REG=0x03 |
|
|
|
|
|
||
|
|
|
|
|
|
Переход на LOOP |
|
|
|
|
|||
|
|
|
|
|
|
1) |
|
IORWF REG,0 |
|
|
|
||
|
|
|
|
|
|
До выполнения |
|
|
|
|
|||
|
|
|
|
|
|
REG=0x13 |
|
|
|
|
|
||
|
|
|
|
|
|
W=0x91 |
|
|
|
|
|
||
|
|
IORWF |
f,d |
|
|
После выполнения |
|
|
|
|
|||
|
|
|
|
REG=0x13 |
|
|
|
|
|
||||
|
|
|
|
|
Побитное “ИЛИ” содержимого |
W=0x93 |
|
|
|
|
|
||
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
||
|
|
Побитное |
|
регистров W и f |
2) |
|
IORWF REG,1 |
1 |
|
Z |
|||
|
|
“ИЛИ” |
|
Если d=0 - результат сохраняется в регистре W |
До выполнения |
|
|
||||||
|
|
W и f |
|
REG=0x13 |
|
|
|
|
|
||||
|
|
|
|
|
Если d=1 - результат сохраняется в регистре f. |
W=0x91 |
|
|
|
|
|
||
|
|
|
|
|
|
После выполнения |
|
|
|
|
|||
|
|
|
|
|
|
REG=0x93 |
|
|
|
|
|
||
|
|
|
|
|
|
W=0x91 |
|
|
|
|
|
||
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
49
|
|
|
|
|
|
|
3) |
|
IORWF |
REG,1 |
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
||||
|
|
|
|
|
|
|
REG=0x00 |
|
|
|
|
|
||
|
|
|
|
|
|
|
W=0x00 |
|
|
|
|
|
||
|
|
|
|
|
|
|
После выполнения |
|
|
|
||||
|
|
|
|
|
|
|
REG=0x00 |
|
|
|
|
|
||
|
|
|
|
|
|
|
W=0x00 |
|
|
|
|
|
||
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Косвенная адресация |
|
|
|
|||
|
|
|
|
|
|
|
|
|
IORWF |
INDF,1 |
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
||||
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
||
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
||||
|
|
|
|
|
|
|
адресу “лежит” число 0х30) |
|
|
|
||||
|
|
|
|
|
|
|
После выполнения |
|
|
|
||||
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
||
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
||||
|
|
|
|
|
|
|
адресу “лежит” число 0х37) |
|
|
|
||||
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
MOVF |
REG,0 |
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
||||
|
|
|
|
|
|
|
W=0x00 |
|
|
|
|
|
||
|
|
|
|
|
|
|
REG=0xC2 |
|
|
|
|
|
||
|
|
|
|
|
|
|
После выполнения |
|
|
|
||||
|
|
|
|
|
|
|
W=0xC2 |
|
|
|
|
|
||
|
|
|
|
|
|
|
REG=0xC2 |
|
|
|
|
|
||
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
||
|
|
|
|
|
|
|
1) |
|
MOVF |
REG,1 |
|
|
|
|
|
|
MOVF |
f,d |
|
До выполнения |
|
|
|
||||||
|
|
Содержимое регистра f пересылается в |
REG=0x43 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
регистр адресата |
После выполнения |
|
|
Z |
||||
|
|
|
|
|
|
|
|
|||||||
|
|
Переслать f |
|
|
|
REG=0x43 |
|
|
1 |
|
||||
|
|
|
|
Если d=0 – значение сохраняется в регистре W |
Z=0 |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
Если d=1 – значение сохраняется в регистре f |
2) До выполнения |
|
|
|
||||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
REG=0x00 |
|
|
|
|
|
||
|
|
|
|
|
|
|
После выполнения |
|
|
|
||||
|
|
|
|
|
|
|
REG=0x00 |
|
|
|
|
|
||
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Косвенная адресация |
|
|
|
|||
|
|
|
|
|
|
|
|
|
MOVF |
INDF,1 |
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
||||
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
||
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
||||
|
|
|
|
|
|
|
адресу “лежит” число 0х00) |
|
|
|
||||
|
|
|
|
|
|
|
После выполнения |
|
|
|
||||
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
||
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
||||
|
|
|
|
|
|
|
адресу “лежит” число 0х00) |
|
|
|
||||
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
MOVWF REG |
|
|
|
||
|
|
|
|
|
|
|
До выполнения |
|
|
|
||||
|
|
|
|
|
|
|
REG=0xFF |
|
|
|
|
|
||
|
|
MOVWF |
f |
|
W=0x4F |
|
|
|
|
|
||||
|
|
|
После выполнения |
|
|
|
||||||||
|
|
|
|
|
|
|
REG=0x4F |
|
|
|
|
|
||
|
|
|
|
|
|
Переслать содержимое W в f |
W=0x4F |
|
|
|
|
|
||
|
|
Переслать |
|
|
|
Косвенная адресация |
|
|
|
|||||
|
|
W в f |
|
|
|
|
|
MOVWF |
INDF |
1 |
|
|
||
|
|
|
|
|
|
|
До выполнения |
|
|
|
||||
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
||
|
|
|
|
|
|
|
FSR=0xC2 (по этому ад- |
|
|
|
||||
|
|
|
|
|
|
|
ресу “лежит” число 0х00 ) |
|
|
|
||||
|
|
|
|
|
|
|
После выполнения |
|
|
|
||||
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
||
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
|
||||
|
|
|
|
|
|
|
адресу “лежит” число 0х17) |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50