Serwis Edukacyjny w I-LO w Tarnowie ![]() Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy
Wałaszek |
©2023 mgr Jerzy Wałaszek
|
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Działanie |
||||
SREG(s) ← 0 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BCLR s | 0 ≤ s ≤7 | PC ← PC + 1 |
1001 |
0100 |
1sss |
1000 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
X | X | X | X | X | X | X | X |
I: | 0, jeśli s = 7; w przeciwnym wypadku bez zmian |
T: | 0, jeśli s = 6; w przeciwnym wypadku bez zmian |
H: | 0, jeśli s = 5; w przeciwnym wypadku bez zmian |
S: | 0, jeśli s = 4; w przeciwnym wypadku bez zmian |
V: | 0, jeśli s = 3; w przeciwnym wypadku bez zmian |
N: | 0, jeśli s = 2; w przeciwnym wypadku bez zmian |
Z: | 0, jeśli s = 1; w przeciwnym wypadku bez zmian |
C: | 0, jeśli s = 0; w przeciwnym wypadku bez zmian |
bclr 0 ; Zeruj znacznik przeniesienia bclr 7 ; Wyłącz przerwania |
Działanie |
||||
Rd(b) ← T | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BLD Rd,b | 0 ≤ d ≤ 31, 0 ≤ b ≤7 | PC ← PC + 1 |
1111 |
100d |
dddd |
0bbb |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
; Kopiuj bit bst r1,2 ; Umieść bit 2 z r1 w znaczniku T bld r0,4 ; Załaduj znacznik T do bitu 4 w r0 |
Działanie |
||||
Jeśli SREG(s) = 0, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRBC s,k | 0 ≤ s ≤ 7, -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
01kk |
kkkk |
ksss |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
cpi r20,5 ; Porównaj r20 z wartością 5 brbc 1,noteq ; Skocz, jeśli znacznik zera wyzerowany ... noteq: nop ; Adres docelowy skoku (nic nie rób) |
Działanie |
||||
Jeśli SREG(s) = 1, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRBS s,k | 0 ≤ s ≤ 7, -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
00kk |
kkkk |
ksss |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
bst r0,3 ; Załaduj bit T bitem 3 z r0 brbs 6,bitset ; Skocz, jeśli bit T był ustawiony ... bitset: nop ; Miejsce docelowe skoku (nic nie rób) |
Działanie |
||||
Jeśli C = 0, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRCC k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
01kk |
kkkk |
k000 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
add r22,r23 ; Dodaj r23 do r22 brcc nocarry ; Skocz przy braku przeniesienia ... nocarry: nop ; Miejsce docelowe skoku (nic nie rób) |
Działanie |
||||
Jeśli C = 1, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRCS k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
00kk |
kkkk |
k000 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
cpi r26,0x56 ; Porównaj r26 ze stałą 0x56 brcs carry ; Skocz przy przeniesieniu ... carry: nop ; Miejsce docelowe skoku (nic nie rób) |
Jeśli jest ustawiony jakikolwiek bit blokujący lub nie został zaprogramowany bit bezpiecznikowy JTAGEN ani OCDEN, to mikroprocesor będzie traktował instrukcję BREAK jak instrukcję NOP i nie wejdzie w tryb zatrzymania.
Instrukcja ta nie jest dostępna na wszystkich mikrokontrolerach AVR. Sprawdź w danych technicznych konkretnego mikrokontrolera.
Działanie |
||||
Przerwa dla zintegrowanego systemu uruchomieniowego | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BREAK | brak | PC ← PC + 1 |
1001 |
0101 |
1001 |
1000 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
Działanie |
||||
Jeśli Z = 1, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BREQ k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
00kk |
kkkk |
k001 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
cp r1,r0 ; Porównaj rejestry r1 i r0 breq equal ; Skocz, jeśli rejestry są równe ... equal: nop ; Miejsce docelowe skoku (nic nie rób) |
Działanie |
||||
Jeśli S = 0, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRGE k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
01kk |
kkkk |
k100 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
cp r11,r12 ; Porównaj rejestry r11 i r12 brge greateq ; Skocz, jeśli r11 ≥ r12 (ze znakiem) ... greateq: nop ; Miejsce docelowe skoku (nic nie rób) |
Działanie |
||||
Jeśli H = 0, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRHC k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
01kk |
kkkk |
k101 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
brhc hclear ; Skocz, jeśli przeniesienie połówkowe wyzerowane ... hclear: nop ; Miejsce docelowe skoku (nic nie rób) |
Działanie |
||||
Jeśli H = 1, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRHS k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
00kk |
kkkk |
k101 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
brhs hset ; Skocz, jeśli przeniesienie połówkowe ustawione ... hset: nop ; Miejsce docelowe skoku (nic nie rób) |
Działanie |
||||
Jeśli I = 0, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRID k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
01kk |
kkkk |
k111 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
brid intdis ; Skocz, jeśli przerwania są wyłączone ... intdis: nop ; Miejsce docelowe skoku (nic nie rób) |
Działanie |
||||
Jeśli I = 1, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRIE k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
00kk |
kkkk |
k111 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
brie inten ; Skocz, jeśli przerwania są włączone ... inten: nop ; Miejsce docelowe skoku (nic nie rób) |
Działanie |
||||
Jeśli C = 1, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRLO k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
00kk |
kkkk |
k000 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
eor r19,r19 ; Zeruj r19 loop: inc r19 ; Zwiększ r19 ... cpi r19,0x10 ; Porównaj r19 z 0x10 brlo loop ; Skocz, jeśli r19 < 0x10 (bez znaku) nop ; Wyjdź z pętli (nic nie rób) |
Działanie |
||||
Jeśli S = 1, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRLT k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
00kk |
kkkk |
k100 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
cp r16,r1 ; Porównaj r16 z r1 brlt less ; Skocz, jeśli r16 < r1 (ze znakiem) ... less: nop ; Miejsce docelowe skoku (nic nie rób) |
Działanie |
||||
Jeśli N = 1, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRMI k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
00kk |
kkkk |
k010 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
subi r18,4 ; Odejmij 4 od r18 brmi negative ; Skocz, jeśli wynik ujemny ... negative: nop ; Miejsce docelowe skoku (nic nie rób) |
Warunkowy skok względny. Testuje znacznik zera Z w SREG i skacze względem licznika rozkazów PC, jeśli Z jest wyzerowane. Jeśli ta instrukcja zostanie wykonana bezpośrednio po jednej z instrukcji CP, CPI, SUB lub SUBI, to skok będzie wykonany wtedy i tylko wtedy gdy liczba binarna ze znakiem lub bez znaku w rejestrze Rd była różna od liczby binarnej ze znakiem lub bez znaku w rejestrze Rr. Instrukcja skacze względem PC w obu kierunkach (PC - 63 ≤ adres docelowy ≤ PC + 64). Parametr k jest przesunięciem od PC i jest liczbą ze znakiem w kodzie U2. (Ekwiwalent instrukcji BRBC 1,k).
Działanie |
||||
Jeśli Z = 0, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRNE k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
01kk |
kkkk |
k001 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
eor r27,r27 ; Zeruj r27 loop: inc r27 ; Zwiększaj r27 o 1 ... cpi r27,5 ; Porównaj r27 z 5 brne loop ; Skocz, jeśli r27 <> 5 nop ; Wyjście z pętli (nic nie rób) |
Warunkowy skok względny. Testuje znacznik liczby ujemnej N w SREG i skacze względem licznika rozkazów PC, jeśli N jest wyzerowane. Instrukcja skacze względem PC w obu kierunkach (PC - 63 ≤ adres docelowy ≤ PC + 64). Parametr k jest przesunięciem od PC i jest liczbą ze znakiem w kodzie U2. (Ekwiwalent instrukcji BRBC 2,k).
Działanie |
||||
Jeśli N = 0, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRPL k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
01kk |
kkkk |
k010 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
subi r26,0x50 ; Odejmij 0x50 od r26 brpl positive ; skocz, jeśli r26 jest dodatni ... positive: nop ; Miejsce docelowe skoku (nic nie rób) |
Warunkowy skok względny. Testuje znacznik przeniesienia C w SREG i skacze względem licznika rozkazów PC, jeśli C jest wyzerowane. Jeśli ta instrukcja zostanie wykonana bezpośrednio po jednej z instrukcji CP, CPI, SUB lub SUBI, to skok będzie wykonany wtedy i tylko wtedy gdy liczba binarna bez znaku w rejestrze Rd była większa lub równa liczbie binarnej bez znaku w rejestrze Rr. Instrukcja skacze względem PC w obu kierunkach (PC - 63 ≤ adres docelowy ≤ PC + 64). Parametr k jest przesunięciem od PC i jest liczbą ze znakiem w kodzie U2. (Ekwiwalent instrukcji BRBC 0,k).
Działanie |
||||
Jeśli C = 0, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRSH k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
01kk |
kkkk |
k000 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
subi r19,4 ; Odejmij 4 od r19 brsh highsm ; Skocz, jeśli r19 >= 4 (bez znaku) ... highsm: nop ; Miejsce docelowe skoku (nic nie rób) |
Warunkowy skok względny. Testuje znacznik T w SREG i skacze względem licznika rozkazów PC, jeśli T jest wyzerowane. Instrukcja skacze względem PC w obu kierunkach (PC - 63 ≤ adres docelowy ≤ PC + 64). Parametr k jest przesunięciem od PC i jest liczbą ze znakiem w kodzie U2. (Ekwiwalent instrukcji BRBC 6,k).
Działanie |
||||
Jeśli T = 0, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRTC k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
01kk |
kkkk |
k110 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
bst r3,5 ; Zapisz bit 5 z r3 w znaczniku T brtc tclear ; Skocz, jeśli bit ten był wyzerowany ... tclear: nop ; Miejsce docelowe skoku (nic nie rób) |
Warunkowy skok względny. Testuje znacznik T w SREG i skacze względem licznika rozkazów PC, jeśli T jest ustawione. Instrukcja skacze względem PC w obu kierunkach (PC - 63 ≤ adres docelowy ≤ PC + 64). Parametr k jest przesunięciem od PC i jest liczbą ze znakiem w kodzie U2. (Ekwiwalent instrukcji BRBS 6,k).
Działanie |
||||
Jeśli T = 1, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRTS k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
00kk |
kkkk |
k110 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
bst r3,5 ; Zapisz bit 5 z r3 w znaczniku T brts tclear ; Skocz, jeśli bit ten był ustawiony ... tset: nop ; Miejsce docelowe skoku (nic nie rób) |
Warunkowy skok względny. Testuje znacznik nadmiaru V w SREG i skacze względem licznika rozkazów PC, jeśli V jest wyzerowane. Instrukcja skacze względem PC w obu kierunkach (PC - 63 ≤ adres docelowy ≤ PC + 64). Parametr k jest przesunięciem od PC i jest liczbą ze znakiem w kodzie U2. (Ekwiwalent instrukcji BRBC 3,k).
Działanie |
||||
Jeśli V = 0, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRVC k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
01kk |
kkkk |
k011 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
add r3,r4 ; Dodaj r4 do r3 brvc noover ; Skocz przy braku nadmiaru ... noover: nop ; Miejsce docelowe skoku (nic nie rób) |
Warunkowy skok względny. Testuje znacznik nadmiaru V w SREG i skacze względem licznika rozkazów PC, jeśli V jest ustawione. Instrukcja skacze względem PC w obu kierunkach (PC - 63 ≤ adres docelowy ≤ PC + 64). Parametr k jest przesunięciem od PC i jest liczbą ze znakiem w kodzie U2. (Ekwiwalent instrukcji BRBS 3,k).
Działanie |
||||
Jeśli V = 1, to PC ← PC + k + 1, inaczej PC ← PC + 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BRVC k | -64 ≤ k ≤ +63 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
00kk |
kkkk |
k011 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | – | – | – | – | – | – | – |
add r3,r4 ; Dodaj r4 do r3 brvs overfl ; Skocz przy nadmiarze ... overfl: nop ; Miejsce docelowe skoku (nic nie rób) |
Ustawia pojedynczy znacznik w SREG.
Działanie |
||||
SREG(s) ← 1 | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BSET s | 0 ≤ s ≤7 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1001 |
0100 |
0sss |
1000 |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
X | X | X | X | X | X | X | X |
I: | 1, jeśli s = 7; w przeciwnym wypadku bez zmian |
T: | 1, jeśli s = 6; w przeciwnym wypadku bez zmian |
H: | 1, jeśli s = 5; w przeciwnym wypadku bez zmian |
S: | 1, jeśli s = 4; w przeciwnym wypadku bez zmian |
V: | 1, jeśli s = 3; w przeciwnym wypadku bez zmian |
N: | 1, jeśli s = 2; w przeciwnym wypadku bez zmian |
Z: | 1, jeśli s = 1; w przeciwnym wypadku bez zmian |
C: | 1, jeśli s = 0; w przeciwnym wypadku bez zmian |
bset 6 ; Ustaw znacznik T bset 7 ; Włącz przerwania |
Umieszcza bit b z rejestru Rd w znaczniku T rejestru stanu SREG.
Działanie |
||||
T ← Rd(b) | ||||
Składnia |
Argumenty |
Licznik rozkazów |
||
BST Rd,b | 0 ≤ d ≤ 31, 0 ≤ b ≤7 | PC ← PC + k + 1, jeśli warunek
prawdziwy PC ← PC + 1, jeśli warunek fałszywy |
1111 |
101d |
dddd |
0bbb |
I | T | H | S | V | N | Z | C |
---|---|---|---|---|---|---|---|
– | X | – | – | – | – | – | – |
T: | 0, jeśli bit b w Rd jest wyzerowany; w przeciwnym wypadku ustawiany na 1. |
; Kopiuj bit bst r1,2 ; Zapisz bit 2 z r1 w znaczniku T bld r0,4 ; Załaduj znacznik T do bitu 4 w r0 |
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2023 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.