|
Serwis Edukacyjny nauczycieli w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Tłumaczenie: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
JP nn |
JUMP = Skocz |
|||||||||||||||||||||||||||||||||||
| Operacja: | PC ← nn | |||||||||||||||||||||||||||||||||||
| Mnemonik: | JP | |||||||||||||||||||||||||||||||||||
| Argumenty |
nn
Uwaga: pierwszy argument za kodem |
|||||||||||||||||||||||||||||||||||
| Opis: |
Argument nn jest ładowany do rejestru licznika rozkazów PC (Program Counter). Następna instrukcja do wykonania zostanie pobrana spod adresu nn.
|
|||||||||||||||||||||||||||||||||||
| Zmieniane znaczniki: | Żaden | |||||||||||||||||||||||||||||||||||
JP (HL) |
JUMP = Skocz |
|||||||||||||||||
| Operacja: | PC ← HL | |||||||||||||||||
| Mnemonik: | JP | |||||||||||||||||
| Argumenty |
(HL)
|
|||||||||||||||||
| Opis: |
Licznik rozkazów (rejestr PC) jest ładowany zawartością pary rejestrów HL. Następna instrukcja zostanie pobrana spod adresu wskazywanego przez nową zawartość PC.
|
|||||||||||||||||
| Zmieniane znaczniki: | Żaden | |||||||||||||||||
| Przykład: | Jeśli zawartość licznika rozkazów PC jest równa
1000H,a zawartość pary rejestrów HL wynosi 4800H,
to po wykonaniuinstrukcji JP (HL) zawartośćlicznika rozkazów zmieni się na . |
JP (IX) |
JUMP = Skocz |
||||||||||||||||||||||||||
| Operacja: | PC ← IX | ||||||||||||||||||||||||||
| Mnemonik: | JP | ||||||||||||||||||||||||||
| Argumenty |
(IX)
|
||||||||||||||||||||||||||
| Opis: |
Licznik rozkazów (rejestr PC) jest ładowany zawartością rejestru indeksowego IX. Następna instrukcja zostanie pobrana spod adresu wskazywanego przez nową zawartość PC.
|
||||||||||||||||||||||||||
| Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||||||
| Przykład: | Jeśli zawartość licznika rozkazów PC jest równa
1000H,a zawartość rejestru indeksowego IX wynosi 4800H,to po wykonaniu instrukcji JP (IX) zawartość licznikarozkazów zmieni się na 4800H. |
JP (IY) |
JUMP = Skocz |
||||||||||||||||||||||||||
| Operacja: | PC ← IY | ||||||||||||||||||||||||||
| Mnemonik: | JP | ||||||||||||||||||||||||||
| Argumenty |
(IY)
|
||||||||||||||||||||||||||
| Opis: |
Licznik rozkazów (rejestr PC) jest ładowany zawartością rejestru indeksowego IY. Następna instrukcja zostanie pobrana spod adresu wskazywanego przez nową zawartość PC.
|
||||||||||||||||||||||||||
| Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||||||
| Przykład: | Jeśli zawartość licznika rozkazów PC jest równa
1000H, a zawartość rejestruindeksowego IY wynosi 4800H,
to po wykonaniuinstrukcji JP (IY)zawartość licznika
rozkazówzmieni się na 4800H. |
JP cc,nn |
JUMP = Skocz warunkowo |
|||||||||||||||||||||||||||||||||||
| Operacja: | Jeśli cc jest spełnione, to PC ← nn | |||||||||||||||||||||||||||||||||||
| Mnemonik: | JP | |||||||||||||||||||||||||||||||||||
| Argumenty |
cc,nn
Uwaga: pierwszy argument za kodem| |
|||||||||||||||||||||||||||||||||||
| Opis: |
Jeśli warunek cc jest prawdziwy, to instrukcja ładuje argument nn do rejestru licznika rozkazów PC (ang. Program Counter) i program wykonuje się dalej począwszy od instrukcji pod adresem nn. Jeśli warunek cc jest fałszywy, to licznik programu PC jest zwiększany w normalny sposób i program kontynuuje się od kolejnej instrukcji w programie. Warunek cc jest programowany jako jeden z ośmiu stanów, które odpowiadają bitom w rejestrze znaczników F. W kodzie instrukcji stany te są przedstawiane następująco:
|
|||||||||||||||||||||||||||||||||||
| Zmieniane znaczniki: | Żaden | |||||||||||||||||||||||||||||||||||
| Przykład | Jeśli znacznik przeniesienia C w rejestrze F jest ustawiony na 1, to wykonanie instrukcji JP C,1520H
spowoduje, że kolejnąinstrukcją wykonywaną w programie będzie instrukcja spod adresu 1520H. |
|||||||||||||||||||||||||||||||||||
JR e |
JUMP RELATIVE = Skocz względnie |
||||||||||||||||||||||||||
| Operacja: | PC ← PC + e | ||||||||||||||||||||||||||
| Mnemonik: | JR | ||||||||||||||||||||||||||
| Argumenty |
e
|
||||||||||||||||||||||||||
| Opis: |
Instrukcja udostępnia bezwarunkowe odgałęzienia do innych segmentów programu. Wartość przesunięcia e jest dodawana do Licznika Rozkazów (PC = Program Counter) i następna instrukcja będzie wykonana od tego wynikowego adresu. Skok jest mierzony od adresu kodu operacyjnego instrukcji i posiada zakres od -126 do +129 bajtów. Asembler automatycznie dopasowuje e dla dwukrotnie zwiększonego PC.
|
||||||||||||||||||||||||||
| Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||||||
| Przykład | Aby skoczyć naprzód o pięć komórek spod adresu
480H, używane jestpolecenie asemblera JR $+5.Wynikowy kod i końcowa wartość PC są pokazane poniżej:
|
||||||||||||||||||||||||||
JR C,e |
JUMP RELATIVE = Skocz względnie |
||||||||||||||||||||||||||
| Operacja: |
Jeśli C=0, to kontynuuj Jeśli C=1, to PC ← PC + e |
||||||||||||||||||||||||||
| Mnemonik: | JR | ||||||||||||||||||||||||||
| Argumenty |
NC,e
|
||||||||||||||||||||||||||
| Opis: |
Instrukcja udostępnia warunkowe odgałęzienia do innych segmentów programu w zależności od wyniku testu na znaczniku przeniesienia C. Jeśli znacznik ten ma stan 1, to wartość przesunięcia e jest dodawana do Licznika Rozkazów (PC = Program Counter) i następna instrukcja będzie wykonana od tego wynikowego adresu. Skok jest mierzony od adresu kodu operacyjnego instrukcji i posiada zakres od -126 do +129 bajtów. Asembler automatycznie dopasowuje e dla dwukrotnie zwiększonego PC.
Jeśli znacznik jest równy 0, to następna instrukcja
|
||||||||||||||||||||||||||
| Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||||||
| Przykład | Ustawiony jest znacznik przeniesienia C i trzeba skoczyć wstecz o cztery komórki od adresu 480H.Instrukcja asemblera ma postać JR C,$-4Wynikowy kod oraz końcowa wartość rejestru PC są pokazane poniżej:
|
||||||||||||||||||||||||||
JR NC,e |
JUMP RELATIVE = Skocz względnie |
||||||||||||||||||||||||||
| Operacja: |
Jeśli C=1, to kontynuuj Jeśli C=0, to PC ← PC + e |
||||||||||||||||||||||||||
| Mnemonik: | JR | ||||||||||||||||||||||||||
| Argumenty |
NC,e
|
||||||||||||||||||||||||||
| Opis: |
Instrukcja udostępnia warunkowe odgałęzienia do innych segmentów programu w zależności od wyniku testu na znaczniku przeniesienia C. Jeśli znacznik ten ma stan 0, to wartość przesunięcia e jest dodawana do Licznika Rozkazów (PC = Program Counter) i następna instrukcja będzie wykonana od tego wynikowego adresu. Skok jest mierzony od adresu kodu operacyjnego instrukcji i posiada zakres od -126 do +129 bajtów. Asembler automatycznie dopasowuje e dla dwukrotnie zwiększonego PC.
Jeśli znacznik jest równy 1, to następna instrukcja
|
||||||||||||||||||||||||||
| Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||||||
| Przykład | Znacznik przeniesienia C jest wyzerowany i trzeba powtórzyć instrukcję skoku. Instrukcja asemblera ma postać
JR NC,$wartość rejestru PC są pokazane poniżej:
|
||||||||||||||||||||||||||
JR Z,e |
JUMP RELATIVE = Skocz względnie |
||||||||||||||||||||||||||
| Operacja: |
Jeśli Z=0, to kontynuuj Jeśli Z=1, to PC ← PC + e |
||||||||||||||||||||||||||
| Mnemonik: | JR | ||||||||||||||||||||||||||
| Argumenty |
Z,e
|
||||||||||||||||||||||||||
| Opis: |
Instrukcja udostępnia warunkowe odgałęzienia do innych segmentów programu w zależności od wyniku testu na znaczniku zera Z. Jeśli znacznik ten ma stan 1, to wartość przesunięcia e jest dodawana do Licznika Rozkazów (PC = Program Counter) i następna instrukcja będzie wykonana od tego wynikowego adresu. Skok jest mierzony od adresu kodu operacyjnego instrukcji i posiada zakres od -126 do +129 bajtów. Asembler automatycznie dopasowuje e dla dwukrotnie zwiększonego PC.
Jeśli znacznik jest równy 0, to następna instrukcja
|
||||||||||||||||||||||||||
| Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||||||
| Przykład | Znacznik zera Z jest ustawiony na 1 i trzeba skoczyć naprzód o pięć komórek od adresu 300H. Instrukcjaasemblera ma postać JR Z,$+5końcowa wartość rejestru PC są pokazane poniżej:
|
||||||||||||||||||||||||||
JR NZ,e |
JUMP RELATIVE = Skocz względnie |
||||||||||||||||||||||||||
| Operacja: |
Jeśli Z=1, to kontynuuj Jeśli Z=0, to PC ← PC + e |
||||||||||||||||||||||||||
| Mnemonik: | JR | ||||||||||||||||||||||||||
| Argumenty |
NZ,e
|
||||||||||||||||||||||||||
| Opis: |
Instrukcja udostępnia warunkowe odgałęzienia do innych segmentów programu w zależności od wyniku testu na znaczniku zera Z. Jeśli znacznik ten ma stan 0, to wartość przesunięcia e jest dodawana do Licznika Rozkazów (PC = Program Counter) i następna instrukcja będzie wykonana od tego wynikowego adresu. Skok jest mierzony od adresu kodu operacyjnego instrukcji i posiada zakres od -126 do +129 bajtów. Asembler automatycznie dopasowuje e dla dwukrotnie zwiększonego PC.
Jeśli znacznik jest równy 1, to następna instrukcja
|
||||||||||||||||||||||||||
| Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||||||
| Przykład | Znacznik zera Z jest wyzerowany i trzeba skoczyć wstecz o cztery komórki od adresu 300H. Instrukcjaasemblera ma postać JR NZ,$-4. Wynikowy kodoraz końcowa wartość rejestru PC są pokazane poniżej:
|
||||||||||||||||||||||||||
DJNZ e |
DECREMENT AND JUMP ON NON ZERO = Zmniejsz i skocz przy nie-zerze |
||||||||||||||||||||||||||
| Operacja: |
B ← B - 1 Jeśli B = 0, to kontynuuj Jeśli B ≠ 0, to PC ← PC + e |
||||||||||||||||||||||||||
| Mnemonik: | DJNZ | ||||||||||||||||||||||||||
| Argumenty |
e
|
||||||||||||||||||||||||||
| Opis: |
Instrukcja ta jest podobna do instrukcji skoków warunkowych z tą
różnicą, iż warunek rozgałęzienia jest oparty na zawartości rejestru B. Rejestr B jest najpierw zmniejszany o 1, a jeśli jego wartość jest wciąż różna od zera, to przesunięcie e zostaje dodane do zawartości rejestru licznika rozkazów PC. Następną wykonywaną instrukcją będzie instrukcja znajdująca się pod adresem wskazywanym przez nową zawartość PC. Skok jest mierzony od adresu kodu operacyjnego instrukcji i posiada zakres od -128 do +129 bajtów. Asembler automatycznie modyfikuje tę wartość dla zwiększonego o 2 PC. Jeśli wynikiem zmniejszenia rejestru B jest zero,
to zostanie wykonana kolejna
|
||||||||||||||||||||||||||
| Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||||||
| Przykład | Do demonstracji zastosowania instrukcji DJNZ używana
jest typowa procedura, która przemieszcza wiersz z bufora wejściowego (INBUF) do bufora wyjściowego (OUTBUF). Bajty są przesuwane aż do napotkania CR (ang. carriage return - znak końca wiersza o kodzie DH) lub do przesłania 80H bajtów.
|
||||||||||||||||||||||||||
![]() |
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:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.