Fragment notatki:
ADDLW Funkcja : Dodaj stałą k i zawartość rejestru W Argument : 0 W Zmieniane znaczniki : C, DC, Z Kod rozkazu : 11 111x kkkk kkkk Opis : Zawartość rejestru W jest dodawania do 8-bitowej stałej k. Wynik operacji jest przesyłany do W. Przykład: ADDLW 0x15 Przed wykonaniem instrukcji : W = 0x10 Po wykonaniu instrukcji : W = 0x25
********************************************************************************** ADDWF Funkcja : Dodaj zawartość rejestru W i zawartość rejestru o adresie f Argumenty : 0 rejestr przeznaczenia okreslony bitem d Zmieniane znaczniki : C, DC, Z Kod rozkazu : 00 0111 dfff ffff Opis : Zawartość rejestru W jest dodawania do zawartosci rejestru o adresie f. Jeśli d = 0 to wynik jest przesyłany do rejestru W. Jeśli d = 1 to wynik jest przesyłany do rejestru o adresie f. Przykład: ADDWF FSR, 0 Przed wykonaniem instrukcji: W = 0x17 FSR = 0xC2 Po wykonaniu instrukcji: W = 0xD9 FSR = 0xC2 ********************************************************************************** ANDLW Funkcja : Iloczyn logiczny stałej k i zawartości rejestru W Argument : 0 W Zmieniane znaczniki : Z Kod rozkazu : 11 1001 kkkk kkkk Opis : Do rejestru W przesyłany jest wynik iloczynu logiczengo rejestru W i 8-bitowej stałej k. Przykład: ANDLW 0x5F Przed wykonaniem instrukcji: W = 0xA3h Po wykonaniu instrukcji: W = 0x03h ********************************************************************************** ANDWF Funkcja : Iloczyn logiczny zawartości rejestru W i zawartości rejestru o adresie f Argumenty : 0 rejestr przeznaczenia okreslony bitem d Zmieniane znaczniki : Z Kod rozkazu : 00 0111 dfff ffff Opis : Do rejestru przeznaczenia przesyłany jest wynik iloczynu logicznego rejestru W i rejestru o adresie f. Jeśli d = 0 to wynik jest przesyłany do rejestru W. Jeśli d = 1 to wynik jest przesyłany do rejestru o adresie f Przykład: ANDWF FSR, 1 Przed wykonaniem instrukcji : W = 0x17 FSR = 0xC2 Po wykonaniu instrukcji : W = 0x17 FSR = 0x02 ********************************************************************************** BCF Funkcja : Wyzeruj bit b rejestru o adresie f Argument : 0 f
(…)
… z procedury obsługi przerwania
Argumenty: brak
Działanie: TOS -> PC 1 -> GIE
Zmieniane znaczniki: brak
Kod rozkazu: 00 0000 0000 1001
Opis:Powrót z procedury obsługi przerwania. 13-bitowy adres jest zdejmowany ze stosu i wpisywany do licznika rozkazów PC. Automatycznie zojstaje włączony układ przerwań (bit GIE=1). Rozkaz jest wykonywany w ciągu dwóch cykli.
Przykład: RETFIE Po wykonaniu instrukcji : PC = TOS GIE = 1 ******************************************************************************************
RETLW Funkcja: Powrót z podprogramu ze stałą w rejestrze W
Argument: 0 <= k <= 255
Działanie: k -> W
Zmieniane znaczniki: brak
Kod rozkazu: 11 01xx kkkk kkkk
Opis:Powrót z podprogramu. 13-bitowy adres jest zdejmowany ze stosu i wpisywany do licznika rozkazów PC. Do rejestru W jest ładowana 8-bitowa…
… z podprogramu Argument: brak
Działanie: TOS -> PC
Zmieniane znaczniki: brak
Kod rozkazu: 00 0000 0000 1000
Opis:Powrót z podprogramu. 13-bitowy adres jest zdejmowany ze stosu i wpisywany do licznika rozkazów PC. Rozkaz jest wykonywany w ciągu dwóch cykli.
Przykład: RETURN Po wykonaniu instrukcji : PC = TOS ******************************************************************************************
RLF
Funkcja…
… powrotu, a następnie do licznika rozkazów PC na pozycje PC<10..0> jest przesyłanych jedenaście bitów bezpośredniego adresu z argumentu rozkazu. Dwa najbardziej znaczące bity licznika rozkazów są ładowane z rejestru PCLATH<4:3>. Rozkaz jest wykonywany w dwóch cyklach rozkazowych.
Przykład: HERE: CALL THERE Przed wykonaniem instrukcji : PC = Address HERE Po wykonaniu instrukcji : TOS = Address HERE+1 PC…
… znaczniki: brak
Kod rozkazu: 10 1kkk kkkk kkkk
Opis: Bezwarunkowy skok do adresu określonego w argumencie rozkazu.D o licznika rozkazów PC na pozycje PC<10..0> jest przesyłanych jedenaście bitów bezpośredniego adresu z argumentu rozkazu. Dwa najbardziej znaczące bity licznika rozkazów są ładowane z rejestru PCLATH<4:3>. Rozkaz jest wykonywany w dwóch cyklach rozkazowych.
Przykład: GOTO THERE Po wykonaniu…
… ******************************************************************************************
SLEEP
Funkcja: Przejdź w tryb uśpienia
Argument: brak
Działanie: 00h -> WDT 00h -> preskaler 1 -> !TO 0-> !PD
Zmieniane znaczniki: !TO, !PD
Kod rozkazu: 00 0000 0110 0011
Opis: Wykonanie tej instrukcji spowoduje wyzeowanie bitu !PD, ustawienie bitu !TO oraz wyzerowanie zawartości licznika watchdog i preskalera. W trybie uśpienia zatrzymywany jest oscylator mikrokontrolera…
… Z.
Przykład: CLRW Przed wykonaniem instrukcji : W = 0x5A Po wykonaniu instrukcji : W = 0x00 ******************************************************************************************
CLRWDT
Funkcja: Wyzeruj zawartość licznika rejestru watchdog
Argument: brak
Działanie: 00h -> WDT 00h -> preskaler 1 -> !TO 1 -> !PD
Zmieniane znaczniki: !TO, !PD
Kod rozkazu: 00 0000 0110 0100
Opis: Wykonanie tej instrukcji spowoduje wyzerowanie zawartości licznika watchdog. Zerowany jest również preskaler, jeżeli jest przypisany do WDT. Nie zmieniany jest współczynnik podziału preskalera. Bity !TO i !PD są ustawiane. Przykład: CLRWDT Przed wykonaniem instrukcji : WDT counter= x WDT prescaler =1:128 Po wykonaniu instrukcji : WDT counter=0x00 WDT prescaler count=0 !TO = 1 !PD = 1 WDT prescaler =1:128…
… f. Jeśli w wyniku dekrementacji do rejestru przeznaczenia zostanie przesłana wartość zerowa, to nastepna instrukcja nie zostanie wykonana. Ponieważ w trakcie wykonywania rozkazu DECFSZ nastepna instrukcja została juz pobrana do wykonania, to zamiast niej wykonana zostanie instrikcja NOP. Jesli wynik operacji będzie rózny od 0, to rozkaz DECFSZ jest wykonywany w jednym cyklu, w przeciwnym przypadku…
... zobacz całą notatkę
Komentarze użytkowników (0)