Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Tłumaczenie: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
JP nn |
JUMP = Skocz |
||||||||||||||||||||||||||||
Operacja: | PC ← nn | ||||||||||||||||||||||||||||
Mnemonik: | JP | ||||||||||||||||||||||||||||
Argumenty |
nn
Uwaga: pierwszy argument za kodem instrukcji jest młodszym bajtem adresu nn, drugi jest starszym bajtem nn. |
||||||||||||||||||||||||||||
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 wykonaniu instrukcji JP (HL) zawartość licznika
rozkazów zmieni się na 4800H . |
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ść licznika
rozkazó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ść rejestru indeksowego IY wynosi 4800H ,
to po wykonaniu instrukcji JP (IY) zawartość licznika
rozkazów zmieni 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 instrukcji jest młodszym bajtem adresu nn, drugi jest starszym bajtem nn. |
||||||||||||||||||||||||||||
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 jest polecenie 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 do wykonania zostanie pobrana z kolejnego adresu za tą instrukcją.
|
||||||||||||||||||||||
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,$-4
|
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 do wykonania zostanie pobrana z kolejnego adresu za tą instrukcją.
|
||||||||||||||||||||||
Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||
Przykład | Znacznik przeniesienia C jest wyzerowany i trzeba
powtórzyć instrukcję skoku. Instrukcja asemblera ma postać
JR NC,$
|
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 do wykonania zostanie pobrana z kolejnego adresu za tą instrukcją.
|
||||||||||||||||||||||
Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||
Przykład | Znacznik zera Z jest ustawiony na 1 i trzeba skoczyć
naprzód o pięć komórek od adresu 480H . Instrukcja asemblera
ma postać JR Z,$+5
|
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 do wykonania zostanie pobrana z kolejnego adresu za tą instrukcją.
|
||||||||||||||||||||||
Zmieniane znaczniki: | Żaden | ||||||||||||||||||||||
Przykład | Znacznik zera Z jest wyzerowany i trzeba skoczyć wstecz
o cztery komórki od adresu 300H . Instrukcja asemblera ma
postać JR NZ,$ -4 . Wynikowy kod
oraz końcowa wartość rejestru PC są pokazane poniżej:
|
DJNZ e |
DECREMENT AND JUMP ON NON ZERO = Zmniejsz i skocz przy wyniku różnym od zera |
||||||||||||||||||||||
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 instrukcja za instrukcją DJNZ w programie.
|
||||||||||||||||||||||
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 ©2024 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.