Слайд 1
Байториентирани инструкции файлрегистър
Слайд 2
Видове байториентирани инструкции файлрегистър
Инструкции за обмен на данни.
Аритметични инструкции.
Логически инструкции.
Слайд 3
Инструкции за обмен на данни
Слайд 4
Инструкция MOVF
(MOVe File)
Синтаксис: [етикет] MOVF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: (f) (приемник)
Влияние върху Z
STATUS:
Пример:
MOVF FSR, 0
Преди инструкцията:
FSR = 0
След инструкцията:
W = 0
Z = 1
Слайд 5
Инструкция MOVWF
(MOVe W into File)
Синтаксис: [етикет] MOVWF f
Операнди: 0 ≤ f ≤ 127
Функция: (W) (f)
Влияние върху
STATUS: Няма
Пример.
MOVWF OPTION
Преди инструкцията:
OPTION = 0xFF
W = 0x4F
След инструкцията:
OPTION = 0x4F
W = 0x4F
Слайд 6
Инструкция SWAPF
(SWAP File)
Синтаксис: [етикет] SWAPF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: (f<3:0>) (приемник <7:4>)
(f<7:4>) (приемник <3:0>)
Влияние върху
STATUS: Няма
Пример.
SWAPF REG1, 0
Преди инструкцията:
REG1 = 0xA5
След инструкцията:
REG1 = 0xA5
W = 0x5A
Слайд 7
Инструкция MOVLW
(MOVe Literal in W)
Синтаксис: [етикет] MOVLW k
Операнди: 0 ≤ k ≤ 255
Функция: (k) (W)
Влияние върху
STATUS: Няма
Пример.
MOVLW 0x47
След инструкцията:
W = 0x47
Слайд 8
Аритметични инструкции
Слайд 9
Инструкции за нулиране
CLRF (CLeaR File) и
CLRW (CLeaR W)
Синтаксис: [етикет] CLRF f
Операнди: 0 ≤ f ≤ 127
Функция: 00h (f)
1 Z
Влияние върху
STATUS: Z
Пример.
CLRF FLAG_REG
Преди инструкцията:
FLAG_REG = 0xA5
След инструкцията:
FLAG_REG = 0x00
Z = 1
Синтаксис: [етикет] CLRW
Операнди: Няма
Функция: 00h (W)
1 Z
Влияние върху
STATUS: Z
Пример.
CLRW
Преди инструкцията:
W = 0xA5
След инструкцията:
W = 0x00
Z = 1
Слайд 10
Инструкции за събиране
ADDWF (ADD W to File)
ADDLW (ADD Literal to W)
Синтаксис: [етикет] ADDWF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: (W) + (f) (приемник)
Влияние върху
STATUS: C, DC, Z
Пример. ADDWF FSR, 0
Преди инструкцията:
W = 0x17
FSR = 0xC2
След инструкцията:
W = 0xD9
FSR = 0xC2
Синтаксис: [етикет] ADDLW k
Операнди: 0 ≤ k ≤ 255
Функция: (W) + k (W)
Влияние върху
STATUS: C, DC, Z
Пример.
ADDLW 0x15
Преди инструкцията:
W = 0x10
След инструкцията:
W = 0x25
Слайд 11
Инструкции за изваждане
SUBWF (SUBtract W from File)
SUBLW (SUBtract W from Literal)
Синтаксис: [етикет] SUBWF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: (f) - (W) (приемник)
Влияние върху
STATUS: C, DC, Z
Пример. SUBWF REG1, 1
Преди инструкцията:
REG1 = 2
W = 2
C = ?
Z = ?
След инструкцията:
REG1 = 0
W = 2
C = 1; резултатът е пол.
Z = 1; резултатът е нулев
Синтаксис: [етикет] SUBLW k
Операнди: 0 ≤ k ≤ 255
Функция: k - (W) (W)
Влияние върху
STATUS: C, DC, Z
Пример. SUBLW 0x03
Преди инструкцията:
W = 0x12
C = ?
Z = ?
След инструкцията:
W = 0xF1
C = 0; (рез. е отриц.)
Z = 0
DC =1
Слайд 12
Инструкции за увеличаване и намаляване съдържанието на регистър с единица
INCF (INCrement File) DECF (DECrement File)
Синтаксис: [етикет] INCF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: (f) + 1 (приемник)
Влияние върху
STATUS: Z
Пример. INCF FSR, 1
Преди инструкцията:
FSR = 0xFF
Z = 0
След инструкцията:
FSR = 0x00
Z = 1
Синтаксис: [етикет] DECF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: (f) 1 (приемник)
Влияние върху
STATUS: Z
Пример. DECF CNT, 1
Преди инструкцията:
CNT = 0x01
Z = 0
След инструкцията:
CNT = 0x00
Z = 1
Слайд 13
Логически инструкции
Слайд 14
Побитово логическо умножение
ANDWF (AND W and File)
ANDLW (AND literal and W)
Синтаксис: [етикет] ANDWF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: (W) .AND. (f) (приемник)
Влияние върху
STATUS: Z
Пример. ANDWF FSR, 1
Преди инструкцията:
W = 0x17
FSR = 0xC2
След инструкцията:
W = 0x17
FSR = 0x02
Синтаксис: [етикет] ANDLW k
Операнди: 0 ≤ k ≤ 255
Функция: (W) .AND. (k) (W)
Влияние върху
STATUS: Z
Пример. ANDLW 0x5F
Преди инструкцията:
W = 0xA3
След инструкцията:
W = 0x03
Слайд 15
Побитово логическо събиране
IORWF (Inclusive OR W and File)
IORLW (Inclusive OR Literal and W)
Синтаксис: [етикет] IORWF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: (W) .OR. (f) (приемник)
Влияние върху
STATUS: Z
Пример. IORWF RESULT, 0
Преди инструкцията:
RESULT = 0x13
W = 0x91
След инструкцията:
RESULT = 0x13
W = 0x93
Синтаксис: [етикет] IORLW k
Операнди: 0 ≤ k ≤ 255
Функция: (W) .OR. (k) (W)
Влияние върху
STATUS: Z
Пример. IORLW 0x35
Преди инструкцията:
W = 0x9A
След инструкцията:
W = 0xBF
Слайд 16
Побитово изключващо ИЛИ
XORWF (eXclusive OR W and File)
XORLW (eXclusive OR Literal and W)
Синтаксис: [етикет] XORWF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: (W) .XOR. (f) (приемник)
Влияние върху
STATUS: Z
Пример. XORWF REG, 1
Преди инструкцията:
REG = 0xAF
W = 0xB5
След инструкцията:
REG = 0x1A
W = 0xB5
Синтаксис: [етикет] XORLW k
Операнди: 0 ≤ k ≤ 255
Функция: (W) .XOR. (k) (W)
Влияние върху
STATUS: Z
Пример. XORLW 0xAF
Преди инструкцията:
W = 0xB5
След инструкцията:
W = 0x1A
Слайд 17
Логическо отрицание
COMF (COMplement File)
Синтаксис: [етикет] COMF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: .NOT. (f) (приемник)
Влияние върху
STATUS: Z
Пример.
COMF REG, 0
Преди инструкцията:
REG = 0x13
След инструкцията:
REG = 0x13
W = 0xEC
Слайд 18
Побитово логическо завъртане
RLF (Rotate Left File)
RRF (Rotate Right File)
Синтаксис: [етикет] RLF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: .RLF. (f) (приемник)
Влияние върху
STATUS: C
Пример. RLF REG, 0
Преди инструкцията:
REG = 1110 0110
C = 0
След инструкцията:
REG = 1110 0110
W = 1100 1100
C = 1
Синтаксис: [етикет] RRF f, d
Операнди: 0 ≤ f ≤ 127
d [0, 1]
Функция: .RRF. (f) (приемник)
Влияние върху
STATUS: C
Пример . RRF REG, 0
Преди инструкцията:
REG = 1110 0110
C = 0
След инструкцията:
REG = 1110 0110
W = 0111 0011
C = 0
0 коментара
За да коментирате, трябва да сте влезли в профила си.
Влезте