Байт-ориентирани инструкции файл-регистър - 4 лекция

Компютърна и комуникационна техника Презентация

Слайд 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 коментара

Все още няма коментари. Бъдете първият, който ще коментира.

За да коментирате, трябва да сте влезли в профила си.

Влезте