Obsluga
.pdf
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
MOVF |
REG,1 |
|
|
|
|
MOVF |
f,d |
|
1) |
До выполнения |
|
|
|||
|
|
Содержимое регистра f пересылается в |
REG=0x43 |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
регистр адресата |
После выполнения |
|
|
||
|
|
|
|
|
|
|
|
||||
|
|
Переслать f |
|
|
|
REG=0x43 |
|
1 |
Z |
||
|
|
|
|
Если 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 |
|
|
|
|
|
|
Переслать |
|
|
|
|
|
1 |
|
||
|
|
W в f |
|
|
|
|
Косвенная адресация |
|
|||
|
|
|
|
|
|
|
|
MOVWF |
INDF |
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
||
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому ад- |
|
|
||
|
|
|
|
|
|
|
ресу “лежит” число 0х00 ) |
|
|
||
|
|
|
|
|
|
|
После выполнения |
|
|
||
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому |
|
|
||
|
|
|
|
|
|
|
адресу “лежит” число 0х17) |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
61
NOP
До выполнения
NOP Нет операции PC=адрес X 1
После выполнения
PC=адрес X+1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RLF |
REG,0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REG=11100110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
W=xxxxxxxx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REG=11100110 |
|
|
|
|
|
RLF |
f, d |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
W=11001100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C=1 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выполняется циклический сдвиг влево |
|
Косвенная адресация |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
Циклический |
|
|
содержимого регистра f через бит C |
|
RLF |
INDF,1 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
регистра STATUS |
|
До выполнения |
|
|
|||||||||
|
|
сдвиг f |
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
1 |
C |
|||
|
|
влево через |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
Если d=0 - результат сохраняется в регистре |
W |
“лежит” число 0x3A |
|
|
|||||||||||||||
|
|
перенос |
|
|
|
|||||||||||||||||
|
|
|
00111010) |
|
|
|
||||||||||||||||
|
|
|
|
|
Если d=1 - результат сохраняется в регистре |
f |
|
|
|
|||||||||||||
|
|
|
|
|
C=1 |
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
“лежит” число 0x75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01110101) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RLF |
INDF,1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
“лежит” число 0xB9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10111001), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
“лежит” число 0x72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01110010) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RRF |
REG,0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REG=11100110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
W=xx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REG=11100110 |
|
|
|
|
|
RRF |
f, d |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
W=01110011 |
|
|
|
|
|
|
Выполняется циклический сдвиг вправо |
C=0 |
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
Косвенная адресация |
|
|
|||||||||||||||
|
|
|
|
|
|
содержимого регистра f черезбит C |
|
|
|
|||||||||||||
|
|
|
|
|
|
|
RRF |
INDF,1 |
|
|
||||||||||||
|
|
Циклический |
|
|
|
|
|
|
|
|
регистра |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
STATUS |
|
|
|
||||||||
|
|
сдвиг f |
|
|
|
|
|
|
|
|
|
|
|
C |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
1 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
вправо через |
|
Если d=0 - результат сохраняется в регистре W |
“лежит число 0x3A |
|
|
|||||||||||||||
|
|
перенос |
|
|
|
|||||||||||||||||
|
|
|
00111010), |
|
|
|
||||||||||||||||
|
|
|
|
|
Если d=1 - результат сохраняется в регистре f |
|
|
|
||||||||||||||
|
|
|
|
|
C=1 |
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
“лежит” число 0x9D |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10011101), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RRF |
INDF,1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
“лежит” число 0x39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00111001), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
“лежит” число 0x1C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00011100), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C=1 |
|
|
|
62
|
|
|
|
|
|
|
SUBWF |
REG,1 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0x03 |
|
|
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|
|
|
|
|
C=x, Z=x |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0x01 |
|
|
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
SUBWF |
f, d |
|
Вычесть содержимое регистра W |
C=1, Z=0 (“+” результат ) |
|
|
|
||
|
|
|
|
|
|
SUBWF |
REG,1 |
|
|
|
|
|
|
|
|
|
|
из содержимого регистра f. |
1 |
|
C,DC,Z |
||
|
|
Вычесть |
|
|
|
До выполнения |
|
|
|||
|
|
W из f |
|
|
Если d=0 - результат сохраняется в регистре W |
REG=0x02 |
|
|
|
|
|
|
|
|
|
|
|
Если d=1 - результат сохраняется в регистре f. |
W=0x02 |
|
|
|
|
|
|
|
|
|
|
|
C=x, Z=x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0x00 |
|
|
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|
|
|
|
|
C=1, Z=1 (“0” результат) |
|
|
|
|
|
|
|
|
|
|
|
SUBWF |
REG,1 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0x01 |
|
|
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|
|
|
|
|
C=x, Z=x |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0xFF |
|
|
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|
|
|
|
|
C=0, Z=0 (“-“ результат) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SWAPF |
REG,0 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0xA5 1010 0101 |
|
|
|
|
|
|
|
|
|
|
|
W=x |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0xA5 |
|
|
|
|
|
|
SWAPF |
f, d |
|
|
W=0x5A 0101 1010 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
Поменять местами старший и младший |
SWAPF |
REG,1 |
|
|
|
|
|
Поменять |
|
|
полубайты регистра f. |
До выполнения |
|
1 |
|
|
|
|
|
местами |
|
|
|
|
|
|
|||
|
|
|
|
Если d=0 – результат сохраняется в регистр W |
REG=0xA5 |
|
|
|
|||
|
|
полубайты |
|
|
|
|
|
|
|||
|
|
|
|
После выполнения |
|
|
|
||||
|
|
в f |
|
|
|
Если d=1 – результат сохраняется в регистре f |
|
|
|
||
|
|
|
|
|
REG=0x5A |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Косвенная адресация |
|
|
|
|
|
|
|
|
|
|
|
SWAPF |
INDF,1 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
|
|
|
|
|
|
|
|
|
|
|
“лежит” число 0x20 |
|
|
|
|
|
|
|
|
|
|
|
0010 0000 |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
|
|
|
|
|
|
|
|
|
|
|
“лежит” число 0x02 |
|
|
|
|
|
|
|
|
|
|
|
0000 0010 |
|
|
|
|
|
|
|
|
|
|
|
XORWF |
REG,1 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
XORWF |
f,d |
|
|
REG=0xAF |
|
|
|
|
|
|
|
|
|
|
|
Побитное "Исключающее "ИЛИ" |
W=0xB5 |
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
|
Побитное |
|
|
содержимого регистров W и f |
REG=0x1A |
|
|
|
|
|
|
|
|
|
(проверка на одинаковость) |
W=0xB5 |
|
1 |
|
Z |
||
|
|
"исключающее |
|
|
|
|
|||||
|
|
|
|
|
XORWF |
REG,0 |
|
|
|
||
|
|
ИЛИ" W и f |
|
|
|
|
|
|
|||
|
|
|
|
Если d=0 – результат тохраняется в регистре W |
До выполнения |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
Если d=1 – результат сохраняется в регистре f |
REG=0xAF |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
W=0xB5 |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
REG=0xAF |
|
|
|
|
|
|
|
|
|
|
|
W=0x1A |
|
|
|
|
63
|
|
|
|
|
|
Косвенная адресация |
|
|
|
|
|
|
|
|
|
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=0x47 01000111 |
|
|
||||
|
|
|
|
|
|
Косвенная адресация |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
Установить |
|
Установить в 0 бит b регистра f |
BCF |
INDF,3 |
1 |
|
|
|
|
в 0 бит b |
|
До выполнения |
|
||||
|
|
регистра f |
|
|
FSR=0xC2 (по этому адресу |
|
|
||
|
|
|
|
|
|
“лежит” число 0x2F |
|
|
|
|
|
|
|
|
|
0010 1111) |
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
|
|
|
|
|
|
|
|
|
“лежит” число 0x27 |
|
|
|
|
|
|
|
|
|
0010 0111) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BSF |
REG,7 |
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
REG=0x0A 00001010 |
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
BSF |
f, b |
|
REG=0x8A 10001010 |
|
|
||
|
|
|
|
|
Установить в 1 бит b регистра f |
Косвенная адресация |
1 |
|
|
|
|
|
|
|
|
||||
|
|
Установить |
|
|
BSF |
INDF,3 |
|
|
|
|
|
в 1 бит b |
|
|
До выполнения |
|
|
||
|
|
регистра f |
|
|
FSR=0xC2 (по этому адресу |
|
|
||
|
|
|
|
|
|
“лежит” число 0x20 |
|
|
|
|
|
|
|
|
|
00100000) |
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
FSR=0xC2 (по этому адресу |
|
|
|
|
|
|
|
|
|
“лежит” число 0x28 |
|
|
|
|
|
|
|
|
|
00101000) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BTFSC |
REG,4 |
|
|
|
|
BTFSC |
f, b |
|
GOTO |
LOOP |
|
|
|
|
|
|
|
|
Если бит b в регистре f =1, то |
TRUE |
.…… |
|
|
|
|
|
|
|
1) До выполнения |
|
|
||
|
|
Проверить бит |
|
исполняется следующая инструкция |
|
|
|||
|
|
b в регистре f, |
|
Если бит b в регистре f =0, |
REG=xxx0xxxx |
1(2) |
|
||
|
|
если b=0, то |
|
то следующая инструкция |
После выполнения |
|
|||
|
|
пропустить |
|
не исполняется (пропускается, вместо нее |
Т.к. REG<4>=0, |
|
|
||
|
|
следующую |
|
исполняется “ виртуальный” NOP), |
исполняется TRUE |
|
|
||
|
|
инструкцию |
|
а команда исполняется за 2 м.ц. |
2) До выполнения |
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
REG=xxx1xxxx |
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
Т.к. REG<4>=1, |
|
|
|
|
|
|
|
|
|
исполняется GOTO LOOP |
|
|
|
|
|
|
|
|
|
|
|
|
|
64
|
|
|
|
|
|
|
BTFSS |
REG,4 |
|
|
|
|
|
BTFSS |
f, b |
|
|
|
GOTO LOOP |
|
|
|
|
|
|
|
|
|
|
Если бит b в регистре f=0, |
TRUE |
.…… |
|
|
|
|
|
|
|
|
|
1) До выполнения |
|
|
|
||
|
|
Проверить бит |
|
|
исполняется следующая инструкция |
REG=xxx0xxxx |
|
|
|
|
|
|
|
b в регистре f, |
|
|
Если бит b в регистре f=1, |
После выполнения |
|
|
|
||
|
|
если b=1, то |
|
|
то следующая инструкция |
Т.к. REG<4>=0, |
|
1(2) |
|
|
|
|
|
пропустить |
|
|
не исполняется (пропускается, вместо нее |
исполняется GOTO LOOP |
|
|
|
||
|
|
следующую |
|
|
исполняется “ виртуальный” NOP), |
2) До выполнения |
|
|
|
||
|
|
инструкцию |
|
|
а команда исполняется за 2 м.ц. |
REG=xxx1xxxx |
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
Т.к. REG<4>=1, |
|
|
|
|
|
|
|
|
|
|
|
исполняется TRUE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Команды операций с константами |
( k – от 0 до 255 ) |
|
|
|
|||
|
|
|
|
|
|
|
ADDLW |
0x15 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
W=0x10 |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
W=0x25 |
|
|
|
|
|
|
ADDLW |
k |
|
|
|
ADDLW |
REG |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
Содержимое регистра W складывается |
W=0x10 |
|
|
|
|
|
|
Сложить |
|
|
с 8- разрядной константой k |
REG=0x37 (адрес регистра, |
1 |
C,DC,Z |
|||
|
|
константу с W |
|
|
Результат сохраняется в регистре W |
а не его содержимое) |
|
|
|
||
|
|
|
|
|
|
После выполнения |
|
|
|
||
|
|
|
|
|
|
|
W=0x47 |
|
|
|
|
|
|
|
|
|
|
|
ADDLW |
CONST |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
“Прописка в шапке” |
|
|
|
|
|
|
|
|
|
|
|
программы: |
|
|
|
|
|
|
|
|
|
|
|
CONST EQU 0x37 |
|
|
|
|
|
|
|
|
|
|
|
W=0x10 |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
W=0x47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SUBLW |
0x02 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
W=0x01 |
|
|
|
|
|
|
|
|
|
|
|
C=? Z=? |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
W=0x01 |
|
|
|
|
|
|
SUBLW |
k |
|
|
|
C=1, Z=0 |
|
|
|
|
|
|
|
|
|
(“+” результат) |
|
|
|
|
||
|
|
|
|
|
|
|
SUBLW |
0x02 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
Вычесть W |
|
|
Вычесть содержимое регистра W из |
W=0x03 |
|
|
|
|
|
|
|
из |
|
|
|
8-разрядной константы k |
C=? Z=? |
|
1 |
C,DC,Z |
|
|
|
константы |
|
|
|
После выполнения |
|
|
|
||
|
|
|
|
|
|
Результат сохраняется в регистре W. |
W=0xFF |
|
|
|
|
|
|
|
|
|
|
|
C=0, Z=0 |
|
|
|
|
|
|
|
|
|
|
|
(“-“ результат) |
|
|
|
|
|
|
|
|
|
|
|
SUBLW |
0x02 |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|
|
|
|
|
C=? Z=? |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
W=0x00 |
|
|
|
|
|
|
|
|
|
|
|
C=1, Z=1 |
|
|
|
|
|
|
|
|
|
|
|
( “0” результат) |
|
|
|
|
|
|
|
|
|
|
|
SUBLW |
REG |
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
W=0x10 |
|
|
|
|
|
|
|
|
|
|
|
REG=0x37 (адрес регистра, |
|
|
|
|
|
|
|
|
|
|
|
а не его содержимое) |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
|
|
|
|
|
W=0x27 |
|
|
|
|
|
|
|
|
|
|
|
C=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
MOVLW |
|
0x5A |
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
|
|
|
|
|
W=x |
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|||
|
|
|
|
|
|
|
W=0x5A |
|
|
|
|
|
|
|
|
MOVLW |
k |
|
|
MOVLW |
|
REG |
|
|
|
||
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
|
|
|
|
|
W=x |
|
|
|
|
|
|
|
|
Переслать |
|
|
Переслать константу k в регистр W |
REG=0x37 (адрес регистра, |
|
|
|
||||
|
|
константу |
|
|
а не его содержимое) |
1 |
|
|
|||||
|
|
в W |
|
|
|
|
После выполнения |
|
|
|
|||
|
|
|
|
|
|
|
W=0x37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
MOVLW |
CONST |
|
|
|
||
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
|
|
|
|
|
“Прописка в шапке” |
|
|
|
|||
|
|
|
|
|
|
|
программы: |
|
|
|
|
|
|
|
|
|
|
|
|
|
CONST |
EQU |
0x37 |
|
|
|
|
|
|
|
|
|
|
|
W=x |
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|||
|
|
|
|
|
|
|
W=0x37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
ANDLW |
0x5F 01011111 |
|
|
|
||
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
|
|
|
|
|
W=0xA3 10100011 |
|
|
|
|||
|
|
|
|
|
|
|
После выполнения |
|
|
|
|||
|
|
|
|
|
|
|
W=0x03 00000011 |
|
|
|
|||
|
|
ANDLW |
k |
|
|
ANDLW |
|
REG |
|
|
|
||
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
|
|
|
|
Выполняется побитное “ И” содержимого |
W=0xA3 |
|
|
|
|
|
|
|
|
Побитное “И” |
|
|
регистра W и 8-разрядной константы k |
REG=0x37 (адрес регистра, |
1 |
|
Z |
||||
|
|
константы и W |
|
|
Результат сохраняется в регистре W |
а не его содержимое) |
|
|
|
||||
|
|
|
|
|
|
После выполнения |
|
|
|
||||
|
|
|
|
|
|
|
W=0x23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
ANDLW |
CONST |
|
|
|
||
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
|
|
|
|
|
“Прописка в шапке” |
|
|
|
|||
|
|
|
|
|
|
|
программы: |
|
|
|
|
|
|
|
|
|
|
|
|
|
CONST |
EQU |
0x37 |
|
|
|
|
|
|
|
|
|
|
|
W=0xA3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|||
|
|
|
|
|
|
|
W=0x23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
IORLW |
0x35 00110101 |
|
|
|
||
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
|
|
|
|
|
W=0x9A 10011010 |
|
|
|
|||
|
|
|
|
|
|
|
После выполнения |
|
|
|
|||
|
|
|
|
|
|
|
W=0xBF 10111111 |
|
|
|
|||
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
IORLW |
|
REG |
|
|
|
|
|
|
IORLW |
k |
|
|
До выполнения |
|
|
|
|
|||
|
|
|
|
W=0x9A |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выполняется побитное “ ИЛИ” |
REG=0x37 (адрес регистра, |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||||
|
|
Побитное |
|
|
а не его содержимое) |
|
|
|
|||||
|
|
|
|
содержимого регистра W и 8-разрядной |
|
|
Z |
||||||
|
|
|
|
После выполнения |
1 |
|
|||||||
|
|
“ИЛИ” |
|
|
|
|
|||||||
|
|
|
|
|
константы k |
|
|||||||
|
|
|
|
|
W=0xBF |
|
|
|
|
|
|
||
|
|
константы и W |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
||
|
|
|
|
|
|
Результат сохраняется в регистре W. |
|
|
|
|
|
|
|
|
|
|
|
|
|
IORLW |
CONST |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
|
|
|
|
|
W=0x9A |
|
|
|
|
|
|
|
|
|
|
|
|
|
“Прописка в шапке” |
|
|
|
|||
|
|
|
|
|
|
|
программы: |
|
|
|
|
|
|
|
|
|
|
|
|
|
CONST |
EQU |
0x37 |
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|||
|
|
|
|
|
|
|
W=0x9F |
|
|
|
|
|
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
IORLW |
|
0x00 |
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
|
|
|
|
|
W=0x00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|||
|
|
|
|
|
|
|
W=0x00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
66
|
|
|
|
XORLW |
0xAF 10101111 |
|
|
||
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
W=0xB5 10110101 |
|
|
|||
|
|
|
|
После выполнения |
|
|
|
||
|
|
|
|
W=0x1A 00011010 |
|
|
|||
|
|
|
|
Z=0 |
|
|
|
|
|
|
XORLW k |
|
|
XORLW |
REG |
|
|
||
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
Выполняется побитное |
W=0xAF |
|
|
|
|
|
|
Побитное |
|
“ Исключающее ИЛИ” содержимого |
REG=0x37 (адрес регистра, |
|
Z |
|||
|
“Исключающее |
|
регистра W и 8-разрядной константы k |
а не его содержимое) |
|
1 |
|||
|
ИЛИ” |
|
(проверка на “одинаковость”) |
После выполнения |
|
|
|
||
|
константы и W |
|
|
W=0x98 |
|
|
|
|
|
|
|
|
Результат сохраняется в регистре W. |
Z=0 |
|
|
|
|
|
|
|
|
|
XORLW |
CONST |
|
|
||
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
W=0xAF |
|
|
|
|
|
|
|
|
|
“Прописка в шапке” |
|
|
|
||
|
|
|
|
программы: |
|
|
|
|
|
|
|
|
|
CONST |
EQU |
0x37 |
|
|
|
|
|
|
|
После выполнения |
|
|
|
||
|
|
|
|
W=0x18 |
|
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Команды управления
|
|
CALL |
|
|
|
Выполнить условный переход |
HERE |
CALL |
ABC |
|
|
|
|
|
|
|
|
|
Адрес следующей инструкции (PC+1) |
До выполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
Условный |
|
|
загружается в вершину стека. |
PC=адрес HERE |
|
2 |
|
|||
|
|
переход |
|
|
11 бит адреса загружаются, в счетчик команд, |
После выполнения |
|
|
|
|||
|
|
(переход по |
|
|
из кода команды. |
PC=адрес ABC |
|
|
|
|
||
|
|
стеку) |
|
|
|
2 старших бита загружаются, в счетчик команд, |
В вершине стека, адрес |
|
|
|||
|
|
|
|
|
|
из регистра PCLATH. |
HERE+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GOTO |
k |
|
Выполнить безусловный переход |
GOTO |
ABC |
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
11 бит адреса загружаются, в счетчик команд, |
|
|
|
|
|
|
|
|
Безусловный |
|
|
из кода команды. |
После выполнения |
|
2 |
|
|||
|
|
переход |
|
|
2 старших бита загружаются, в счетчик команд, |
PC= адрес ABC |
|
|
|
|||
|
|
(стек не |
|
|
|
из регистра PCLATH. |
|
|
|
|
|
|
|
|
задействован) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
RETURN |
|
Возврат из подпрограммы |
|
RETURN |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
После выполнения |
|
2 |
|
||
|
|
Возврат |
|
|
|
Содержимое вершины стека "выгружается" в |
PC= адресу, который |
|
|
|||
|
|
по стеку |
|
|
“ выгружен” из |
|
|
|
||||
|
|
|
|
счетчик команд PC. |
|
|
|
|||||
|
|
|
|
|
|
вершины стека. |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CALL |
TABLE |
|
|
|
|
|
|
|
|
|
|
|
....... |
|
|
|
|
|
|
RETLW |
k |
|
|
|
....... |
|
|
|
||
|
|
|
|
|
|
Возврат из подпрограммы с |
TABLE |
ADDWF |
PCL,1 |
|
|
|
|
|
|
|
|
|
установленной константой |
|
RETLW |
k1 |
|
|
|
|
|
Возврат |
|
|
|
|
|
RETLW |
k2 |
2 |
|
|
|
|
по стеку |
|
|
|
|
…… |
|
|
|
|
|
|
|
с загрузкой |
|
|
В регистр W загружается 8-разрядная константа |
|
…… |
|
|
|
|
|
|
|
константы |
|
|
Содержимое вершины стека "выгружается" в |
|
RETLW |
kn |
|
|
||
|
|
в W |
|
|
|
счетчик команд PC. |
|
|
|
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
||
|
|
|
|
|
|
|
PC= адресу, который |
|
|
|||
|
|
|
|
|
|
|
“ выгружен” из |
|
|
|
||
|
|
|
|
|
|
|
вершины стека. |
|
|
|
||
|
|
|
|
|
|
|
W = k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67
|
|
RETFIE |
|
|
|
|
RETFIE |
|
|
|
|
|
|
|
|
|
|
Возврат из подпрограммы обработки |
|
|
|
|
|
||
|
|
|
|
|
прерываний |
|
|
|
|
|
|
|
|
|
Возврат по |
|
|
|
|
После выполнения |
2 |
|
|
|
|
|
|
стеку из ПП |
|
|
Содержимое вершины стека "выгружается" в |
|
PC= адресу, который |
|
|
|
|
|
|
|
обработки |
|
|
счетчик команд PC. |
|
“ выгружен” из |
|
|
|
|
|
|
|
прерываний |
|
|
Осуществляется глобальное разрешение |
|
вершины стека. |
|
|
|
|
|
|
|
|
|
|
прерываний (бит GIE устанавливается в 1). |
|
GIE=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CLRWDT |
|
|
|
|
CLRWDT |
|
|
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
||
|
|
|
|
|
Сброс WDT и предделителя |
|
WDT и предделитель не |
|
|
|
|
|
|
|
|
|
|
|
сброшены |
|
|
|
-TO |
||
|
|
Сброс WDT |
|
|
(если он подключен к WDT). |
|
После выполнения |
1 |
|
|
||
|
|
(сторожевого |
|
|
Биты -TO и -PD устанавливаются в 1. |
|
WDT и предделитель |
|
|
|
-PD |
|
|
|
таймера) |
|
|
|
сброшены |
|
|
|
|
||
|
|
|
|
|
|
|
-TO=1 |
|
|
|
|
|
|
|
|
|
|
|
|
-PD=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SLEEP |
|
|
Переход в режим пониженного |
|
|
|
|
|
|
|
|
|
|
|
|
энергопотребления (в “ спящий режим”) |
|
|
|
|
|
|
|
|
|
Переход |
|
|
Сброс флага включения питания (-PD) в 0. |
|
SLEEP |
1 |
|
|
-TO |
|
|
|
в режим |
|
|
Установка флага переполнения WDT (-TO) в 1. |
|
|
|
|
|
|
-PD |
|
|
SLEEP |
|
|
Сброс WDT и предделителя. |
|
|
|
|
|
|
|
|
|
|
|
|
Выключение тактового генератора и перевод |
|
|
|
|
|
|
|
|
|
|
|
|
м/контроллера в режим SLEEP. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Переслать содержимое регистра W |
|
|
|
|
|
|
|
|
|
|
|
|
в регистр OPTION. |
|
|
|
|
|
|
|
|
|
|
|
|
Инструкция поддерживается для совместимости |
|
|
|
|
|
|
|
|
|
OPTION |
|
|
программы с семейством PIC16C5x. |
|
OPTION |
|
|
|
|
|
|
|
|
|
Запись-чтение регистра OPTION можно |
|
|
|
|
|
|
||
|
|
|
|
|
выполнить прямой или косвенной адресацией. |
|
|
|
|
|
|
|
|
|
|
|
|
Не рекомендуется использовать при работе с |
|
|
|
|
|
|
|
|
|
|
|
|
другими (отличными от PIC16C5x) типами |
|
|
|
|
|
|
|
|
|
|
|
|
ПИКов. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Переслать содержимое регистра W |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TRIS |
|
|
в регистр TRIS. |
|
TRIS |
|
|
|
|
|
|
|
|
|
Не рекомендуется использовать при работе с |
|
|
|
|
|
|
||
|
|
|
|
|
другими (отличными от PIC16C5x) типами |
|
|
|
|
|
|
|
|
|
|
|
|
ПИКов. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"Самоучитель по программированию PIC контроллеров для начинающих" http://ikarab.narod.ru E-mail: karabea@lipetsk.ru
68