Serwis Edukacyjny
Nauczycieli

w I-LO w Tarnowie
obrazek

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu
 mgr Jerzy Wałaszek
Konsultacje:
Wojciech Grodowski
mgr inż. Janusz Wałaszek

©2026 mgr Jerzy Wałaszek

obrazek

Mikrokontrolery

Rodzina średnia PIC

PIC12F629/675

Podsumowanie listy rozkazów


obrazek

Educational and Non-Profit Use of Copyrighted Material:

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s permission is not required when using copyrighted material in: (1) an academic report, thesis, or dissertation; (2) classroom handouts or textbook; or (3) a presentation or article that is solely educational in nature (e.g., technical article published in a magazine).

https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines

SPIS TREŚCI KONSERWACJA
Podrozdziały

Lista rozkazów PIC12F629/675

Zestaw rozkazów maszynowych mikrokontrolera PIC12F629/675 jest wysoce ortogonalny i składa się z trzech podstawowych kategorii:

Każda instrukcja mikrokontrolera PIC12F629/675 jest 14-bitowym słowem podzielonym na pole kodu operacji (ang. opcode), które określa typ instrukcji, oraz na jedno lub więcej pól argumentów, które dalej określają działanie tej instrukcji. Formaty instrukcji każdej kategorii przedstawiają poniższe rysunki oraz podsumowuje je tabelka.

Opisy pola opcode
Pole Opis
f Adres rejestru plikowego (0x00 ... 0x7F).
W Rejestr roboczy (akumulator).
b Adres bitu wewnątrz 8-bitowego rejestru.
k Pole literału, stałe dane lub etykieta.
x Pole o nieistotnej zawartości (0 lub 1).
Asembler wstawi w takie pole zero. Jest to zalecane dla kompatybilności z przyszłymi narzędziami Microchip'a.
d Wybór miejsca docelowego:
d = 0 (wynik trafi do W).
d = 1 (wynik trafi do rejestru plikowego f).
Standardem jest d = 1.
PC Licznik programu (ang. Program Counter)
TO Bit przekroczenia czasu (ang. time-out)
PD Bit wyłączenia zasilania (ang. Power-down)

Zorientowane bajtowo operacje na zestawie rejestrów

Zorientowane bitowo operacje na zestawie rejestrów

Operacje ze stałymi i operacje sterujące

Następna tabela wymienia instrukcje rozpoznawane przez asembler MPASMTM.

Mnemonik,
argumenty
Opis Cykle
roz.
14-bitowe słowo instrukcji Zmieniane
znaczniki
Uwagi
MSB...   ...LSB
Operacje bajtowe na rejestrach
ADDWF f,d Dodanie W i f 1 00 0111 dfff ffff C, DC,Z 1,2
ANDWF f,d Koniunkcja bitowa W i f 1 00 0101 dfff ffff Z 1,2
CLRF f Zerowanie f 1 00 0001 1fff ffff Z 2
CLRW Zerowanie W 1 00 0001 0xxx xxxx Z  
COMF f,d Zaprzeczenie f 1 00 1001 dfff ffff Z 1,2
DECF f,d Zmniejszenie o 1 f 1 00 0011 dfff ffff Z 1,2
DECFSZ f,d Zmniejszenie o 1 f, pominięcie przy zerze 1/2 00 1011 dfff ffff 1,2,3
INCF f,d Zwiększenie o 1 f 1 00 1010 dfff ffff Z 1,2
INCFSZ f,d Zwiększenie o 1 f, pominięcie przy zerze 1/2 00 1111 dfff ffff 1,2,3
IORWF f,d Alternatywa bitowa W z f 1 00 0100 dfff ffff Z 1,2
MOVF f,d Przesłanie f 1 00 1000 dfff ffff Z 1,2
MOVWF f Przesłanie W do F 1 00 0000 1fff ffff  
NOP Instrukcja pusta 1 00 0000 0xx0 0000  
RLF f,d Obrót bitów f w lewo przez znacznik C
 
1 00 1101 dfff ffff C 1,2
RRF f,d Obrót bitów f w prawo przez znacznik C
1 00 1100 dfff ffff C 1,2
SUBWF f,d Odjęcie W od f 1 00 0010 dfff ffff C, DC, Z 1,2
SWAPF f,d Zamiana połówek f 1 00 0111 dfff ffff 1,2
XORWF f,d Bitowa suma modulo 2 W z f 1 00 0110 dfff ffff Z 1,2
Operacje bitowe na rejestrach
BCF f,b Zerowanie bitu b w f 1 01 00bb bfff ffff 1,2
BSF f,b Ustawianie bitu b w f 1 01 01bb bfff ffff 1,2
BTFSC f,b Testowanie bitu b w f, pominięcie przy wyzerowanym 1/2 01 10bb bfff ffff 3
BTFSS f,b Testowanie bitu b w f, pominięcie przy ustawionym 1/2 01 11bb bfff ffff 3
Operacje ze stałą i operacje sterujące
ADDLW k Dodanie stałej k do W 1 11 111x kkkk kkkk C, DC, Z  
ANDLW k Koniunkcja bitowa stałej k i W 1 11 1001 kkkk kkkk Z  
CALL k Wywołanie podprogramu o adresie k 2 10 0kkk kkkk kkkk  
CLRWDT Zerowanie timera licznika zegarowego 1 00 0000 0110 0100 TO, PD  
GOTO k Skok do adresu k 2 10 1kkk kkkk kkkk  
IORLW k Alternatywa bitowa stałej k z W 1 11 1000 kkkk kkkk Z  
MOVLW k Przesłanie stałej k do W 1 11 00xx kkkk kkkk  
RETFIE Powrót z przerwania 2 00 0000 0000 1001  
RETLW k Powrót z podprogramu ze stałą k w W 2 11 01xx kkkk kkkk  
RETURN Powrót z podprogramu 2 00 0000 0000 1000  
SLEEP Wejście w tryb uśpienia 1 00 0000 0110 0011 TO, PD  
SUBLW k Odjęcie W od stałej k 1 11 110x kkkk kkkk C, DC, Z  
XORLW k Bitowa suma modulo 2 stałej k i W 1 11 1010 kkkk kkkk Z  
Uwagi 1: Gdy rejestr we/wy jest modyfikowany jako funkcja samego siebie (np. MOVF GPIO, 1), to użytą wartością jest stan panujący na końcówkach mikrokontrolera. Na przykład jeśli zatrzask danych ma stan  ‘1’ dla końcówki skonfigurowanej jako wejście, która została zewnętrznie wysterowana stanem niskim, to wpisane dane będą miały wartość ‘0’..
  2: Jeśli ta instrukcja zostanie wykonana na rejestrze TMR0 (i tam, gdzie to możliwe z d = 1), to preskaler będzie zerowany, jeśli przydzielono go do modułu Timer0 .
  3: Jeśli licznik programu (PC) jest modyfikowany lub test warunkowy ma wartość true, to dana instrukcja wymaga dwóch cykli rozkazowych. Drugi cykl zostaje wykonany jako NOP.

Więcej informacji na temat każdej instrukcji znajdziesz w rozdziale "Instrukcje maszynowe PIC – Rodzina średnia".

W instrukcjach zorientowanych bajtowo 'f' reprezentuje desygnator rejestru plikowego, a 'd' reprezentuje desygnator docelowy. Desygnator rejestru plikowego określa, który rejestr plikowy jest używany przez daną instrukcję. Desygnator docelowy określa, gdzie zostanie umieszczony wynik operacji. Jeśli 'd' ma wartość zero, to wynik trafia do rejestru akumulatora W. Jeśli 'd' jest równe jeden, to wynik zostanie umieszczony w rejestrze plikowym określonym w instrukcji.

W instrukcjach zorientowanych bitowo 'b' reprezentuje desygnator pola bitowego, który wybiera bit przetwarzany przez operację, natomiast 'f' reprezentuje adres pliku, w którym ten bit się znajduje.

W operacjach literałowych i sterujących 'k' reprezentuje stałą 8- lub 11-bitową, albo wartość literału.

Jeden cykl rozkazowy składa się z czterech taktów oscylatora, co przy szybkości oscylatora równej 4 MHz daje normalny czas wykonania instrukcji 1 ms. Wszystkie instrukcje są wykonywane w pojedynczym cyklu rozkazowym, chyba że prawdziwy jest test warunkowy lub zmieniany jest licznik programu jako wynik instrukcji. Gdy to wystąpi, wykonanie zajmuje dwa cykle rozkazowe, a drugi cykl wykonywany jest jako NOP.


do podrozdziału  do strony 

Operacje odczytu/modyfikacji/zapisu

Każda instrukcja operująca na rejestrze plikowym wykonuje operację odczytu/modyfikacji/zapisu (ang. Read-Modify-Write, R-M-W). Rejestr ten jest odczytywany, dane zostają zmodyfikowane, a wynik jest umieszczany zgodnie z instrukcją lub z desygnatorem docelowym 'd'. Operacja odczytu jest wykonywana nawet, jeśli instrukcja zapisuje do tego rejestru.

do podrozdziału  do strony 

Opis instrukcji

ADDLW (ang. Add Literal and W – Dodanie stałej i W)

Składnia: ADDLW k

Argumenty: k = 0...255

Operacja: W ← W + k

Modyfikowane znaczniki stanu: C, DC, Z

Opis: Zawartość akumulatora W zostaje dodana do 8-bitowej stałej k. Wynik jest umieszczany w akumulatorze W.


ADDWF (ang. Add W and f – Dodanie W i f)

Składnia: ADDWF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: dest ← W + f

Modyfikowane znaczniki stanu: C, DC, Z

Opis: Dodanie zawartości rejestru roboczego W (akumulatora) i rejestru f. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.


ANDLW (ang. And Literal with W – Koniunkcja bitowa stałej i W)

Składnia: ANDLW k

Argumenty: k = 0...255

Operacja: W ← W & k

Modyfikowane znaczniki stanu: Z

Opis: Zawartość akumulatora W zostaje poddana operacji koniunkcji bitowej z 8-bitową stałą k. Wynik jest umieszczany w akumulatorze W.


ANDWF (ang. And W and f – Koniunkcja bitowa W i f)

Składnia: ANDWF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: dest ← W & f

Modyfikowane znaczniki stanu: Z

Opis: Zawartość akumulatora W zostaje poddana operacji koniunkcji bitowej z rejestrem f. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.


BCF (ang. Bit Clear f – Zerowanie bitu w f)

Składnia: BCF f,b

Argumenty: f = 0...127, b = 0...7

Operacja: f[b] ← 0

Modyfikowane znaczniki stanu: żaden

Opis: Bit b rejestru f zostaje wyzerowany.


BSF (ang. Bit Set f – Ustawienie bitu w f)

Składnia: BSF f,b

Argumenty: f = 0...127, b = 0...7

Operacja: f[b] ← 1

Modyfikowane znaczniki stanu: żaden

Opis: Bit b rejestru f zostaje ustawiony na 1.


BTFSC (ang. Bit Test f, Skip if Clear – Testowanie bitu w f, pominięcie przy wyzerowanym)

Składnia: BTFSC f,b

Argumenty: f = 0...127, b = 0...7

Operacja: Pominięcie następnej instrukcji, jeśli f[b] = 0

Modyfikowane znaczniki stanu: żaden

Opis: Jeśli bit b w rejestrze f ma stan 0, to zostaje pominięta następna instrukcja. Jeśli bit ten ma stan 0, to następna instrukcja pobrana w czasie wykonywania instrukcji bieżącej (nakładkowanie) zostaje usunięta z kolejki i zamiast niej mikroprocesor wykonuje instrukcję pustą NOP, co powoduje, iż instrukcja BTFSC zajmuje w tym przypadku 2 cykle rozkazowe.


BTFSS (ang. Bit Test f, Skip if Set – Testowanie bitu w f, pominięcie przy ustawionym)

Składnia: BTFSS f,b

Argumenty: f = 0...127, b = 0...7

Operacja: Pominięcie następnej instrukcji, jeśli f[b] = 1

Modyfikowane znaczniki stanu: żaden

Opis: Jeśli bit b w rejestrze f ma stan 1, to zostaje pominięta następna instrukcja. Jeśli bit ten ma stan 1, to następna instrukcja pobrana w czasie wykonywania instrukcji bieżącej (nakładkowanie) zostaje usunięta z kolejki i zamiast niej mikroprocesor wykonuje instrukcję pustą NOP, co powoduje, iż instrukcja BTFSS zajmuje w tym przypadku 2 cykle rozkazowe.


CALL (ang. Call Subroutine – Wywołanie podprogramu)

Składnia: CALL k

Argumenty: k = 0...2047

Operacja:

TOS ← PC + 1
PC[10:0] ← k
PC[12:11] ← PCLATH[4:3]

Modyfikowane znaczniki stanu: żaden

Opis: Wywołanie podprogramu. Najpierw 13-bitowy adres powrotu (PC + 1) jest umieszczany na szczycie stosu. 11-bitowy adres bezpośredni jest ładowany do dolnych jedenastu bitów licznika programu PC[10:0]. Górne bity PC zostają załadowane z zatrzasków PCLATH[4:3]. Instrukcja CALL jest wykonywana w dwóch cyklach rozkazowych. Jest to konieczne, aby przeładować kolejkę instrukcji.


CLRF (ang. Clear f – Zerowanie f)

Składnia: CLRF f

Argumenty: f = 0...127

Operacja:

f ← 00h
Z ← 1

Modyfikowane znaczniki stanu: Z

Opis: Zawartość rejestru f jest zerowana a znacznik zera Z jest ustawiany. W rzeczywistości jest to instrukcja CLR f,1.


CLRW (ang. Clear W – Zerowanie W)

Składnia: CLRW

Argumenty: brak

Operacja:

W ← 00h
Z ← 1

Modyfikowane znaczniki stanu: Z

Opis: Zawartość rejestru W jest zerowana a znacznik zera Z jest ustawiany. W rzeczywistości jest to instrukcja CLR f,0, gdzie rejestr f (x) jest odczytywany, lecz nie zostaje użyty w instrukcji.


CLRWDT (ang. Clear Watchdog Timer – Zerowanie timera licznika zegarowego)

Składnia: CLRWDT

Argumenty: brak

Operacja:

WDT ← 00h
preskaler WDT ← 0
TO ← 1
PD ← 1

Modyfikowane znaczniki stanu: TO, PD

Opis: Instrukcja CLRWDT zeruje timer licznika zegarowego oraz licznik jego preskalera. Ustawiane są bity stanu TO i PD.


COMF (ang. Compliment f – Negacja f)

Składnia: COMF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: dest ← f

Modyfikowane znaczniki stanu: Z

Opis: Wszystkie bity rejestru f zostają zanegowane i wynik jest umieszczany w rejestrze docelowym dest. Jeśli d jest równe 0, to wynik negacji zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.


DECF (ang. Decrement f – Zmniejszenie f o 1)

Składnia: DECF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: dest ← f - 1

Modyfikowane znaczniki stanu: Z

Opis: Zawartość rejestru f zostaje zmniejszona o 1 i wynik jest umieszczany w rejestrze docelowym dest. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.


DECFSZ (ang. Decrement f, Skip if Zero – Zmniejszenie o 1 rejestru f, pominięcie przy zerze)

Składnia: DECFSZ f,d

Argumenty: f = 0...127, d = 0...1

Operacja: dest ← f -1, pominięcie następnej instrukcji, jeśli wynik = 0

Modyfikowane znaczniki stanu: żaden

Opis: Zawartość rejestru f zostaje zmniejszona o 1 i wynik jest umieszczany w rejestrze docelowym dest. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f. Jeśli wynik jest równy zero, to następna instrukcja pobrana w czasie wykonywania instrukcji bieżącej (nakładkowanie) zostaje usunięta z kolejki i zamiast niej mikroprocesor wykonuje instrukcję pustą NOP, co powoduje, iż instrukcja DECFSZ zajmuje w tym przypadku 2 cykle rozkazowe.


GOTO (ang. Unconditional Jump – Skok bezwarunkowy)

Składnia: CALL k

Argumenty: k = 0...2047

Operacja:

PC[10:0] ← k
PC[12:11] ← PCLATH[4:3]

Modyfikowane znaczniki stanu: żaden

Opis: Wykonanie bezwarunkowego skoku w programie. 11-bitowy adres bezpośredni jest ładowany do dolnych jedenastu bitów licznika programu PC[10:0]. Górne bity PC zostają załadowane z zatrzasków PCLATH[4:3]. Instrukcja GOTO jest wykonywana w dwóch cyklach rozkazowych. Jest to konieczne, aby przeładować kolejkę instrukcji.


INCF (ang. Increment f – Zwiększenie o 1 f)

Składnia: INCF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: dest ← f + 1

Modyfikowane znaczniki stanu: Z

Opis: Zawartość rejestru f zostaje zwiększona o 1 i wynik jest umieszczany w rejestrze docelowym dest. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.


INCFSZ (ang. Decrement f, Skip if Zero – Zwiększenie o 1 rejestru f, pominięcie przy zerze)

Składnia: DECFSZ f,d

Argumenty: f = 0...127, d = 0...1

Operacja:

dest ← f +1, pominięcie następnej instrukcji, jeśli wynik = 0

Modyfikowane znaczniki stanu: żaden

Opis: Zawartość rejestru f zostaje zwiększona o 1 i wynik jest umieszczany w rejestrze docelowym dest. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f. Jeśli wynik jest równy zero, to następna instrukcja pobrana w czasie wykonywania instrukcji bieżącej (nakładkowanie) zostaje usunięta z kolejki i zamiast niej mikroprocesor wykonuje instrukcję pustą NOP, co powoduje, iż instrukcja DECFSZ zajmuje w tym przypadku 2 cykle rozkazowe.


IORLW (ang. Inclusive OR Literal with W – Alternatywa bitowa stałej i W)

Składnia: IORLW k

Argumenty: k = 0...255

Operacja: W ← W | k

Modyfikowane znaczniki stanu: Z

Opis: Zawartość akumulatora W zostaje poddana operacji alternatywy bitowej z 8-bitową stałą k. Wynik jest umieszczany w akumulatorze W.


IORWF (ang. Inclusive OR W and f – Alternatywa bitowa W i f)

Składnia: IORWF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: dest ← W | f

Modyfikowane znaczniki stanu: Z

Opis: Zawartość akumulatora W zostaje poddana operacji alternatywy bitowej z rejestrem f. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.


MOVLW (ang. Move Literal to W – Załadowanie stałej do W)

Składnia: MOVLW k

Argumenty: k = 0...255

Operacja: W ← k

Modyfikowane znaczniki stanu: żaden

Opis: 8-bitowa stała k zostaje umieszczona w akumulatorze W.


MOVF (ang. Move f – Przesłanie f)

Składnia: MOVF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: dest ← f

Modyfikowane znaczniki stanu: Z

Opis: Zostaje pobrany rejestr f. Jeśli d jest równe 0, to rejestr f zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f. Jest to przydatne przy testowaniu stanu rejestru f, ponieważ w tej operacji ustawiany jest znacznik zera Z.


MOVWF (ang. Move W to f – Przesłanie W do f)

Składnia: MOVWF f

Argumenty: f = 0...127

Operacja: f ← W

Modyfikowane znaczniki stanu: żaden

Opis: Dane z rejestru W zostają umieszczone w rejestrze f.


NOP (ang. No Operation – Brak działania)

Składnia: NOP

Argumenty: brak

Operacja: brak działania

Modyfikowane znaczniki stanu: żaden

Opis: Instrukcja pusta, brak operacji.


RETFIE (ang. Return From Interrupt– Powrót z przerwania)

Składnia: RETFIE

Argumenty: brak

Operacja:

PC ← TOS
GIE ← 1

Modyfikowane znaczniki stanu: żaden

Opis: Powrót z przerwania. 13-bitowy adres ze szczytu stosu (TOS) zostaje załadowany do rejestru licznika programu PC. Bit globalnego włączenia przerwań (ang. Global Interrupt Enable bit, GIE – INTCON[7]) jest automatycznie ustawiany na 1, co uaktywnia przyjmowanie przerwań. Instrukcja zajmuje 2 cykle zegarowe.


RETLW (ang. Return with Literal in W – Powrót z podprogramu ze stałą w W)

Składnia: RETLW k

Argumenty: k = 0...255

Operacja:

W ← k
PC ← TOS

Modyfikowane znaczniki stanu: żaden

Opis: Powrót z podprogramu. 8-bitowa stała k zostaje umieszczona w akumulatorze W. Licznik programu PC zostaje załadowany 13-bitowym adresem ze szczytu stosu TOS. Instrukcja zajmuje 2 cykle rozkazowe.


RETURN (ang. Return from Subroutine – Powrót z podprogramu)

Składnia: RETURN

Argumenty: brak

Operacja: PC ← TOS

Modyfikowane znaczniki stanu: żaden

Opis: Powrót z podprogramu. Licznik programu PC zostaje załadowany 13-bitowym adresem ze szczytu stosu TOS. Instrukcja zajmuje 2 cykle rozkazowe.


RLF (ang. Rotate Left f through Carry – Obrót bitów f w lewo poprzez przeniesienie)

Składnia: RLF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: Zobacz na opis poniżej.

Modyfikowane znaczniki stanu: C

Opis: Bity rejestru f są obracane w lewo poprzez znacznik przeniesienia. Jeśli d = 0, to wynik trafi do rejestru roboczego W, jeśli d = 1, to wynik trafi z powrotem do rejestru f.


RRF (ang. Rotate Right f through Carry – Obrót bitów f w prawo poprzez przeniesienie)

Składnia: RRF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: Zobacz na opis poniżej.

Modyfikowane znaczniki stanu: C

Opis: Bity rejestru f są obracane w prawo poprzez znacznik przeniesienia. Jeśli d = 0, to wynik trafi do rejestru roboczego W, jeśli d = 1, to wynik trafi z powrotem do rejestru f.


SLEEP (Uśpienie)

Składnia: SLEEP

Argumenty: brak

Operacja:

WDT ← 00h
Preskaler WDT ← 0
TO ← 1
PD ← 0

Modyfikowane znaczniki stanu: TO, PD

Opis: Opis: Zostaje ustawiony znacznik zakończenia zliczania TO (ang. Time-out Status bit). Znacznik wyłączenia zasilania PD (ang. Power-down Status bit) jest zerowany. Licznik zegarowy i jego preskaler są zerowane. Procesor zostaje wprowadzony w tryb uśpienia z zatrzymanym oscylatorem.


SUBLW (ang. Subtract W from Literal – Odjęcie W od stałej)

Składnia: SUBLW k

Argumenty: k = 0...255

Operacja: W ← k - W

Modyfikowane znaczniki stanu: C, DC, Z

Opis: Zawartość akumulatora W zostaje odjęta od 8-bitowej stałej k (metodą uzupełnień do 2). Wynik jest umieszczany w akumulatorze W.


SUBWF (ang. Subtract W from f – Odjęcie W od f)

Składnia: SUBWF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: dest ← f - W

Modyfikowane znaczniki stanu: C, DC, Z

Opis: Zawartość akumulatora W zostaje odjęta od rejestru f (metodą uzupełnień do 2). Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.


SWAPF (ang. Swap Nibbles in f – Wymiana połówek f)

Składnia: SWAPF f,d

Argumenty: f = 0...127, d = 0...1

Operacja:

dest[7:4] ← f[3:0]
dest[3:0] ← f[7:4]

Modyfikowane znaczniki stanu: żaden

Opis: Górna i dolna połówka (4 bity) rejestru f zostają zamienione miejscami. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.


XORLW (ang. Exclusive OR Literal with W – Suma modulo 2 stałej z W)

Składnia: XORLW k

Argumenty: k = 0...255

Operacja: W ← W ^ k

Modyfikowane znaczniki stanu: Z

Opis: Zawartość akumulatora W zostaje poddana operacji sumy modulo 2 z 8-bitową stałą k. Wynik jest umieszczany w akumulatorze W.


XORWF (ang. Exclusive OR W with f – Suma modulo 2 W z f)

Składnia: XORWF f,d

Argumenty: f = 0...127, d = 0...1

Operacja: dest ← W ^ f

Modyfikowane znaczniki stanu: Z

Opis: Zawartość akumulatora W zostaje poddana operacji sumy modulo 2 z rejestrem f. Jeśli d jest równe 0, to wynik zostanie umieszczony w akumulatorze W. Jeśli d jest równe 1, to wynik zostanie z powrotem umieszczony w rejestrze f.


do podrozdziału  do strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2026 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.