Rozkaz SLL: Różnice pomiędzy wersjami
Z ZX Spectrum Wiki
(→Adresowanie indeksowane z zapisaniem kopii wyniku do rejestru) |
|||
(Nie pokazano 10 wersji utworzonych przez jednego użytkownika) | |||
Linia 1: | Linia 1: | ||
− | <i>Nieudokumentowany</i> | + | <i>[[Nieudokumentowane rozkazy|Nieudokumentowany]]</i> |
<p>Przesunięcie arytmetyczne w lewo daje taki sam wynik jak logiczne, więc teoretycznie nie ma rozkazu SLL, ponieważ jest zbędny.<br> | <p>Przesunięcie arytmetyczne w lewo daje taki sam wynik jak logiczne, więc teoretycznie nie ma rozkazu SLL, ponieważ jest zbędny.<br> | ||
Jednak w oryginalnych mikroprocesorach Z80 firmy Zilog wykonanie rozkazu o kodzie, w którym powinien się znaleźć SLL daje wynik jak poniżej.</p> | Jednak w oryginalnych mikroprocesorach Z80 firmy Zilog wykonanie rozkazu o kodzie, w którym powinien się znaleźć SLL daje wynik jak poniżej.</p> | ||
− | <i><b>S</b>hift <b>L</b>eft <b>L</b>ogic</i> - przesunięcie logiczne w lewo | + | <i><b>S</b>hift <b>L</b>eft <b>L</b>ogic with 1 insertion</i> - przesunięcie logiczne w lewo z wpisaniem 1 do bitu 0 |
{|cellpadding="0" | {|cellpadding="0" | ||
|- | |- | ||
Linia 74: | Linia 74: | ||
|} | |} | ||
== Adresowanie indeksowane == | == Adresowanie indeksowane == | ||
− | * SLL (IX+ | + | * SLL (IX+d) |
− | * SLL (IY+ | + | * SLL (IY+d) |
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
Linia 102: | Linia 102: | ||
|style="text-align:center"|0 | |style="text-align:center"|0 | ||
|} | |} | ||
+ | |||
+ | == <i>Adresowanie indeksowane z zapisaniem kopii wyniku do rejestru</i> == | ||
+ | * SLL (IX+d),A | ||
+ | * SLL (IX+d),B | ||
+ | * SLL (IX+d),C | ||
+ | * SLL (IX+d),D | ||
+ | * SLL (IX+d),E | ||
+ | * SLL (IX+d),H | ||
+ | * SLL (IX+d),L | ||
+ | * SLL (IY+d),A | ||
+ | * SLL (IY+d),B | ||
+ | * SLL (IY+d),C | ||
+ | * SLL (IY+d),D | ||
+ | * SLL (IY+d),E | ||
+ | * SLL (IY+d),H | ||
+ | * SLL (IY+d),L | ||
+ | Kopia wyniku operacji zachowywana jest jednocześnie w rejestrze. | ||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | !scope="row" style="text-align:left"|Liczba bajtów | ||
+ | |style="width: 16px;text-align:right"|4 | ||
+ | |- | ||
+ | !scope="row" style="text-align:left"|Liczba taktów zegara | ||
+ | |style="width: 16px;text-align:right"|23 | ||
+ | |} | ||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | !scope="row" colspan=6 style="text-align:center"|Znaczniki | ||
+ | |- | ||
+ | !scope="col" style="width: 16px"|C | ||
+ | !scope="col" style="width: 16px"|Z | ||
+ | !scope="col" style="width: 16px"|PV | ||
+ | !scope="col" style="width: 16px"|S | ||
+ | !scope="col" style="width: 16px"|N | ||
+ | !scope="col" style="width: 16px"|H | ||
+ | |- | ||
+ | |style="text-align:center"|↕ | ||
+ | |style="text-align:center"|↕ | ||
+ | |style="text-align:center"|P | ||
+ | |style="text-align:center"|↕ | ||
+ | |style="text-align:center"|0 | ||
+ | |style="text-align:center"|0 | ||
+ | |} | ||
+ | <hr> | ||
+ | * [[Lista rozkazów]] | ||
+ | * [[Rejestry]] | ||
+ | * [[Znaczniki]] | ||
+ | * [[Mikroprocesor Z80]] | ||
+ | [[Kategoria:Programowanie]][[Kategoria:Assembler]] |
Aktualna wersja na dzień 14:22, 23 gru 2014
Przesunięcie arytmetyczne w lewo daje taki sam wynik jak logiczne, więc teoretycznie nie ma rozkazu SLL, ponieważ jest zbędny.
Jednak w oryginalnych mikroprocesorach Z80 firmy Zilog wykonanie rozkazu o kodzie, w którym powinien się znaleźć SLL daje wynik jak poniżej.
Shift Left Logic with 1 insertion - przesunięcie logiczne w lewo z wpisaniem 1 do bitu 0
CY | ◄ | ─ | r | ◄─ 1 | ||
7 | 0 |
Spis treści
Adresowanie rejestrowe
- SLL A
- SLL B
- SLL C
- SLL D
- SLL E
- SLL H
- SLL L
Liczba bajtów | 2 |
---|---|
Liczba taktów zegara | 8 |
Znaczniki | |||||
---|---|---|---|---|---|
C | Z | PV | S | N | H |
↕ | ↕ | P | ↕ | 0 | 0 |
Adresowanie pośrednie
- SLL (HL)
Liczba bajtów | 2 |
---|---|
Liczba taktów zegara | 15 |
Znaczniki | |||||
---|---|---|---|---|---|
C | Z | PV | S | N | H |
↕ | ↕ | P | ↕ | 0 | 0 |
Adresowanie indeksowane
- SLL (IX+d)
- SLL (IY+d)
Liczba bajtów | 4 |
---|---|
Liczba taktów zegara | 23 |
Znaczniki | |||||
---|---|---|---|---|---|
C | Z | PV | S | N | H |
↕ | ↕ | P | ↕ | 0 | 0 |
Adresowanie indeksowane z zapisaniem kopii wyniku do rejestru
- SLL (IX+d),A
- SLL (IX+d),B
- SLL (IX+d),C
- SLL (IX+d),D
- SLL (IX+d),E
- SLL (IX+d),H
- SLL (IX+d),L
- SLL (IY+d),A
- SLL (IY+d),B
- SLL (IY+d),C
- SLL (IY+d),D
- SLL (IY+d),E
- SLL (IY+d),H
- SLL (IY+d),L
Kopia wyniku operacji zachowywana jest jednocześnie w rejestrze.
Liczba bajtów | 4 |
---|---|
Liczba taktów zegara | 23 |
Znaczniki | |||||
---|---|---|---|---|---|
C | Z | PV | S | N | H |
↕ | ↕ | P | ↕ | 0 | 0 |