Zestaw instrukcji mikroprocesora Z80


Grupa instrukcji przesuwów

 

SLA r

      

SHIFT LEFT ARITHMETIC = Przesuń arytmetycznie w lewo

Operacja:  
Mnemonik:   SLA
Argumenty:   r

 

1 1 0 0 1 0 1 1 CB
0 0 1 0 0 r  
Opis:   Zawartość rejestru r jest przesuwana arytmetycznie w lewo o jeden bit. Bit b7 trafia do znacznika przeniesienia C. Na pozycję bitu b0 wpisywane jest 0. W kodzie operacyjnym instrukcji argument r jest przedstawiony następująco:
Rejestr r
A
B
C
D
E
H
L
111
000
001
010
011
100
101
 
   
Cykle Takty Czas
2 8 (4,4) 2,00μs
Zmieniane znaczniki:   S jest ustawiany na 1, jeśli wynik jest ujemny; inaczej jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b7 rejestru przed wykonaniem operacji.
Przykład:   Jeśli rejestr L zawiera
b7 b6 b5 b4 b3 b2 b1 b0
1 0 1 1 0 0 0 1

to po wykonaniu instrukcji SLA L zawartość rejestru L oraz znacznika przeniesienia C jest następująca:

C   b7 b6 b5 b4 b3 b2 b1 b0
1   0 1 1 0 0 0 1 0

 


 

SLA (HL)

      

SHIFT LEFT ARITHMETIC = Przesuń arytmetycznie w lewo

Operacja:  
Mnemonik:   SLA
Argumenty:   (HL)

 

1 1 0 0 1 0 1 1 CB
0 0 1 0 0 1 1 0 26
Opis:   Zawartość komórki pamięci o adresie w parze rejestrów HL jest przesuwana arytmetycznie w lewo o jeden bit. Bit b7 trafia do znacznika przeniesienia C. Na pozycję bitu b0 wpisywane jest 0.
   
Cykle Takty Czas
4 15 (4,4,4,3) 3,75μs
Zmieniane znaczniki:   S jest ustawiany na 1, jeśli wynik jest ujemny; inaczej jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b7 komórki pamięci przed wykonaniem operacji.
Przykład:   Jeśli para rejestrów HL zawiera 2000H, a komórka pamięci pod adresem 2000H zawiera
b7 b6 b5 b4 b3 b2 b1 b0
1 0 1 1 0 0 0 1

to po wykonaniu instrukcji SLA (HL) zawartość komórki pamięci o adresie 2000H oraz znacznika przeniesienia C jest następująca:

C   b7 b6 b5 b4 b3 b2 b1 b0
1   0 1 1 0 0 0 1 0

 


 

SLA (IX+d)

      

SHIFT LEFT ARITHMETIC = Przesuń arytmetycznie w lewo

Operacja:  
Mnemonik:   SLA
Argumenty:   (IX+d)

 

1 1 0 1 1 1 0 1 DD
1 1 0 0 1 0 1 1 CB
← d →  
0 0 1 0 0 1 1 0 26
Opis:   Zawartość komórki pamięci o adresie będącym sumą zawartości rejestru indeksowego IX oraz przesunięcia d jest przesuwana arytmetycznie w lewo o jeden bit. Bit b7 trafia do znacznika przeniesienia C. Na pozycję bitu b0 wpisywane jest 0.
   
Cykle Takty Czas
6 23 (4,4,3,5,4,3) 5,75μs
Zmieniane znaczniki:   S jest ustawiany na 1, jeśli wynik jest ujemny; inaczej jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b7 komórki pamięci przed wykonaniem operacji.
Przykład:   Jeśli rejestr indeksowy IX zawiera 2000H, a komórka pamięci pod adresem 2007H zawiera
b7 b6 b5 b4 b3 b2 b1 b0
1 0 1 1 0 0 0 1

to po wykonaniu instrukcji SLA (IX+7H) zawartość komórki pamięci o adresie 2007H oraz znacznika przeniesienia C jest następująca:

C   b7 b6 b5 b4 b3 b2 b1 b0
1   0 1 1 0 0 0 1 0

 


 

SLA (IY+d)

      

SHIFT LEFT ARITHMETIC = Przesuń arytmetycznie w lewo

Operacja:  
Mnemonik:   SLA
Argumenty:   (IY+d)

 

1 1 1 1 1 1 0 1 FD
1 1 0 0 1 0 1 1 CB
← d →  
0 0 1 0 0 1 1 0 26
Opis:   Zawartość komórki pamięci o adresie będącym sumą zawartości rejestru indeksowego IY oraz przesunięcia d jest przesuwana arytmetycznie w lewo o jeden bit. Bit b7 trafia do znacznika przeniesienia C. Na pozycję bitu b0 wpisywane jest 0.
   
Cykle Takty Czas
6 23 (4,4,3,5,4,3) 5,75μs
Zmieniane znaczniki:   S jest ustawiany na 1, jeśli wynik jest ujemny; inaczej jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b7 komórki pamięci przed wykonaniem operacji.
Przykład:   Jeśli rejestr indeksowy IY zawiera 2000H, a komórka pamięci pod adresem 2007H zawiera
b7 b6 b5 b4 b3 b2 b1 b0
1 0 1 1 0 0 0 1

to po wykonaniu instrukcji SLA (IX+7H) zawartość komórki pamięci o adresie 2007H oraz znacznika przeniesienia C jest następująca:

C   b7 b6 b5 b4 b3 b2 b1 b0
1   0 1 1 0 0 0 1 0

 


 

SRA r

      

SHIFT RIGHT ARITHMETIC = Przesuń arytmetycznie w prawo

Operacja:  
Mnemonik:   SRA
Argumenty:   r

 

1 1 0 0 1 0 1 1 CB
0 0 1 0 1 r  
Opis:   Zawartość rejestru r jest przesuwana arytmetycznie w prawo o jeden bit. Bit b0 trafia do znacznika przeniesienia C. Bit znaku b7 jest powielany. W kodzie operacyjnym instrukcji argument r jest przedstawiony następująco:
Rejestr r
A
B
C
D
E
H
L
111
000
001
010
011
100
101
 
   
Cykle Takty Czas
2 8 (4,4) 2,00μs
Zmieniane znaczniki:   S jest ustawiany na 1, jeśli wynik jest ujemny; inaczej jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b0 rejestru przed wykonaniem operacji.
Przykład:   Jeśli rejestr H zawiera
b7 b6 b5 b4 b3 b2 b1 b0
1 0 1 1 1 0 0 1

to po wykonaniu instrukcji SRA H zawartość rejestru H oraz znacznika przeniesienia C jest następująca:

b7 b6 b5 b4 b3 b2 b1 b0   C
1 1 0 1 1 1 0 0   1

 


 

SRA (HL)

      

SHIFT RIGHT ARITHMETIC = Przesuń arytmetycznie w prawo

Operacja:  
Mnemonik:   SRA
Argumenty:   (HL)

 

1 1 0 0 1 0 1 1 CB
0 0 1 0 1 1 1 0 2E
Opis:   Zawartość komórki pamięci o adresie przechowywanym przez parę rejestrów HL jest przesuwana arytmetycznie w prawo o jeden bit. Bit b0 trafia do znacznika przeniesienia C. Bit znaku b7 jest powielany.
   
Cykle Takty Czas
4 15 (4,4,4,3) 3,75μs
Zmieniane znaczniki:   S jest ustawiany na 1, jeśli wynik jest ujemny; inaczej jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b0 komórki pamięci przed wykonaniem operacji.
Przykład:   Jeśli para rejestrów HL zawiera 7700H, a komórka pamięci o adresie 7700H zawiera
b7 b6 b5 b4 b3 b2 b1 b0
1 0 1 1 1 0 0 1

to po wykonaniu instrukcji SRA (HL) zawartość tej komórki oraz znacznika przeniesienia C jest następująca:

b7 b6 b5 b4 b3 b2 b1 b0   C
1 1 0 1 1 1 0 0   1

 


 

SRA (IX+d)

      

SHIFT RIGHT ARITHMETIC = Przesuń arytmetycznie w prawo

Operacja:  
Mnemonik:   SRA
Argumenty:   (IX+d)

 

1 1 0 1 1 1 0 1 DD
1 1 0 0 1 0 1 1 CB
← d →  
0 0 1 0 1 1 1 0 2E
Opis:   Zawartość komórki pamięci o adresie będącym sumą zawartości rejestru indeksowego IX oraz przesunięcia d jest przesuwana arytmetycznie w prawo o jeden bit. Bit b0 trafia do znacznika przeniesienia C. Bit znaku b7 jest powielany.
   
Cykle Takty Czas
6 23 (4,4,3,5,4,3) 5,75μs
Zmieniane znaczniki:   S jest ustawiany na 1, jeśli wynik jest ujemny; inaczej jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b0 komórki pamięci przed wykonaniem operacji.
Przykład:   Jeśli rejestr indeksowy IX zawiera 7700H, a komórka pamięci o adresie 7707H zawiera
b7 b6 b5 b4 b3 b2 b1 b0
1 0 1 1 1 0 0 1

to po wykonaniu instrukcji SRA (IX+7H) zawartość tej komórki oraz znacznika przeniesienia C jest następująca:

b7 b6 b5 b4 b3 b2 b1 b0   C
1 1 0 1 1 1 0 0   1

 


 

SRA (IY+d)

      

SHIFT RIGHT ARITHMETIC = Przesuń arytmetycznie w prawo

Operacja:  
Mnemonik:   SRA
Argumenty:   (IY+d)

 

1 1 1 1 1 1 0 1 FD
1 1 0 0 1 0 1 1 CB
← d →  
0 0 1 0 1 1 1 0 2E
Opis:   Zawartość komórki pamięci o adresie będącym sumą zawartości rejestru indeksowego IY oraz przesunięcia d jest przesuwana arytmetycznie w prawo o jeden bit. Bit b0 trafia do znacznika przeniesienia C. Bit znaku b7 jest powielany.
   
Cykle Takty Czas
6 23 (4,4,3,5,4,3) 5,75μs
Zmieniane znaczniki:   S jest ustawiany na 1, jeśli wynik jest ujemny; inaczej jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b0 komórki pamięci przed wykonaniem operacji.
Przykład:   Jeśli rejestr indeksowy IY zawiera 7700H, a komórka pamięci o adresie 7707H zawiera
b7 b6 b5 b4 b3 b2 b1 b0
1 0 1 1 1 0 0 1

to po wykonaniu instrukcji SRA (IY+7H) zawartość tej komórki oraz znacznika przeniesienia C jest następująca:

b7 b6 b5 b4 b3 b2 b1 b0   C
1 1 0 1 1 1 0 0   1

 


 

SRL r

      

SHIFT RIGHT LOGICAL = Przesuń logicznie w prawo

Operacja:  
Mnemonik:   SRL
Argumenty:   r

 

1 1 0 0 1 0 1 1 CB
0 0 1 1 1 r  
Opis:   Zawartość rejestru r jest przesuwana w prawo o jeden bit. Bit b0 trafia do znacznika przeniesienia C. Bit b7 jest zerowany. W kodzie operacyjnym instrukcji argument r jest przedstawiony następująco:
Rejestr r
A
B
C
D
E
H
L
111
000
001
010
011
100
101
 
   
Cykle Takty Czas
2 8 (4,4) 2,00μs
Zmieniane znaczniki:   S jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b0 rejestru przed wykonaniem operacji.
Przykład:   Jeśli rejestr B zawiera
b7 b6 b5 b4 b3 b2 b1 b0
1 0 0 0 1 1 1 1

to po wykonaniu instrukcji SRL B zawartość rejestru B oraz znacznika przeniesienia C jest następująca:

b7 b6 b5 b4 b3 b2 b1 b0   C
0 1 0 0 0 1 1 1   1

 


 

SRL (HL)

      

SHIFT RIGHT LOGICAL = Przesuń logicznie w prawo

Operacja:  
Mnemonik:   SRL
Argumenty:   (HL)

 

1 1 0 0 1 0 1 1 CB
0 0 1 1 1 1 1 0 3E
Opis:   Zawartość komórki pamięci o adresie przechowywanym przez parę rejestrów HL jest przesuwana w prawo o jeden bit. Bit b0 trafia do znacznika przeniesienia C. Bit b7 jest zerowany.
   
Cykle Takty Czas
4 15 (4,4,4,3) 3,75μs
Zmieniane znaczniki:   S jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b0 komórki pamięci przed wykonaniem operacji.
Przykład:   Jeśli para rejestrów przechowuje adres 6000H, a komórka pamięci o adresie 6000H posiada zawartość
b7 b6 b5 b4 b3 b2 b1 b0
1 0 0 0 1 1 1 1

to po wykonaniu instrukcji SRL (HL) zawartość tej komórki pamięci oraz znacznika przeniesienia C jest następująca:

b7 b6 b5 b4 b3 b2 b1 b0   C
0 1 0 0 0 1 1 1   1

 


 

SRL (IX+d)

      

SHIFT RIGHT LOGICAL = Przesuń logicznie w prawo

Operacja:  
Mnemonik:   SRL
Argumenty:   (IX+d)

 

1 1 0 1 1 1 0 1 DD
1 1 0 0 1 0 1 1 CB
← d →  
0 0 1 1 1 1 1 0 3E
Opis:   Zawartość komórki pamięci o adresie będącym sumą zawartości rejestru indeksowego IX oraz przesunięcia d jest przesuwana w prawo o jeden bit. Bit b0 trafia do znacznika przeniesienia C. Bit b7 jest zerowany.
   
Cykle Takty Czas
6 23 (4,4,3,5,4,3) 5,75μs
Zmieniane znaczniki:   S jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b0 komórki pamięci przed wykonaniem operacji.
Przykład:   Jeśli rejestr indeksowy IX przechowuje adres 6000H, a komórka pamięci o adresie 6012H posiada zawartość
b7 b6 b5 b4 b3 b2 b1 b0
1 0 0 0 1 1 1 1

to po wykonaniu instrukcji SRL (IX+12H) zawartość tej komórki pamięci oraz znacznika przeniesienia C jest następująca:

b7 b6 b5 b4 b3 b2 b1 b0   C
0 1 0 0 0 1 1 1   1

 


 

SRL (IY+d)

      

SHIFT RIGHT LOGICAL = Przesuń logicznie w prawo

Operacja:  
Mnemonik:   SRL
Argumenty:   (IY+d)

 

1 1 1 1 1 1 0 1 FD
1 1 0 0 1 0 1 1 CB
← d →  
0 0 1 1 1 1 1 0 3E
Opis:   Zawartość komórki pamięci o adresie będącym sumą zawartości rejestru indeksowego IY oraz przesunięcia d jest przesuwana w prawo o jeden bit. Bit b0 trafia do znacznika przeniesienia C. Bit b7 jest zerowany.
   
Cykle Takty Czas
6 23 (4,4,3,5,4,3) 5,75μs
Zmieniane znaczniki:   S jest zerowany
Z jest ustawiany na 1, jeśli wynik jest zerem; inaczej jest zerowany
H jest zerowany
P/V jest ustawiany na 1, jeśli wynik zawiera parzystą liczbę bitów o stanie 1; inaczej zerowany
N jest zerowany
C zawiera stan bitu b0 komórki pamięci przed wykonaniem operacji.
Przykład:   Jeśli rejestr indeksowy IY przechowuje adres 6000H, a komórka pamięci o adresie 6012H posiada zawartość
b7 b6 b5 b4 b3 b2 b1 b0
1 0 0 0 1 1 1 1

to po wykonaniu instrukcji SRL (IY+12H) zawartość tej komórki pamięci oraz znacznika przeniesienia C jest następująca:

b7 b6 b5 b4 b3 b2 b1 b0   C
0 1 0 0 0 1 1 1   1

 



List do administratora Serwisu Edukacyjnego Nauczycieli I LO

Twój email: (jeśli chcesz otrzymać odpowiedź)
Temat:
Uwaga: ← tutaj wpisz wyraz  ilo , inaczej list zostanie zignorowany

Poniżej wpisz swoje uwagi lub pytania dotyczące tego rozdziału (max. 2048 znaków).

Liczba znaków do wykorzystania: 2048

 

W związku z dużą liczbą listów do naszego serwisu edukacyjnego nie będziemy udzielać odpowiedzi na prośby rozwiązywania zadań, pisania programów zaliczeniowych, przesyłania materiałów czy też tłumaczenia zagadnień szeroko opisywanych w podręcznikach.



   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2018 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.