Znaczniki: Różnice pomiędzy wersjami

Z ZX Spectrum Wiki
(Utworzono nową stronę "Znacznikami lub flagami nazywane są pojedyncze bity rejestru F (Flags Register).<br> Informują one o stanie mikroprocesora. {|class="wikitable" |- !scope="col" style="...")
 
 
(Nie pokazano 5 wersji utworzonych przez jednego użytkownika)
Linia 1: Linia 1:
Znacznikami lub flagami nazywane są pojedyncze bity rejestru F (Flags Register).<br>
+
Znacznikami lub flagami nazywane są pojedyncze bity [[rejestry|rejestru]] F (Flags Register).<br>
 
Informują one o stanie mikroprocesora.
 
Informują one o stanie mikroprocesora.
 
{|class="wikitable"
 
{|class="wikitable"
Linia 17: Linia 17:
 
|style="text-align:center"|H
 
|style="text-align:center"|H
 
|style="text-align:center; background-color: lightgray"|&nbsp;
 
|style="text-align:center; background-color: lightgray"|&nbsp;
|style="text-align:center"|P/V
+
|style="text-align:center"|PV
 
|style="text-align:center"|N
 
|style="text-align:center"|N
|style="text-align:center"|C
+
|style="text-align:center"|CY
 
|}
 
|}
 
Bity 3 i 5 nie są używane.<br>
 
Bity 3 i 5 nie są używane.<br>
Znaczniki C, P/V, Z i S można testować w [[rozkazy warunkowe|rozkazach warunkowych]] skoków, wywołań i powrotów z podprogramów.<br>
+
Znaczniki CY, PV, Z i S można testować w [[rozkazy warunkowe|rozkazach warunkowych]] skoków, wywołań i powrotów z podprogramów.<br>
 
Znaczniki H i N używane są w arytmetyce BCD i nie mogą być testowane bezpośrednio w rozkazach warunkowych. Ich odczyt jest możliwy wyłącznie pośrednio, na przykład z użyciem poniższego kodu
 
Znaczniki H i N używane są w arytmetyce BCD i nie mogą być testowane bezpośrednio w rozkazach warunkowych. Ich odczyt jest możliwy wyłącznie pośrednio, na przykład z użyciem poniższego kodu
 
<pre>
 
<pre>
Linia 30: Linia 30:
 
BIT 4,E
 
BIT 4,E
 
</pre>
 
</pre>
 +
=== <i><b>C</b>arr<b>Y</b></i> ===
 +
Znacznik przeniesienia. Dla odróżnienia od [[rejestry|rejestru]] C jest oznaczany jako CY. Jego położenie w rejestrze F nie jest przypadkowe. Można powiedzieć, że jest to 9-ty bit akumulatora.
 +
=== <i><b>N</b>egation</i> ===
 +
Znacznik wykorzystywany przez [[rozkaz DAA]] do rozróżniania rozkazów [[rozkaz ADD|ADD]] i [[rozkaz SUB|SUB]]. Po wykonaniu rozkazu ADD znacznik jest kasowany, a po SUB ustawiany na 1.<br>
 +
Wynik [[rozkaz DAA|rozkazu DAA]] jest wartością bezwzględną w [[systemy liczbowe|zapisie BCD]], a znak liczby pozostaje w znaczniku N.
 +
 +
=== <i><b>P</b>arity or o<b>V</b>erflow</i> ===
 +
=== <i><b>H</b>alf carry flag</i> ===
 +
=== <i><b>Z</b>ero</i> ===
 +
=== <i><b>S</b>ign</i> ===
 +
Podobnie jak w przypadku CY, położenie znacznika S w rejestrze flag jest celowe. Jest to bowiem kopia najstarszego bitu wyniku operacji arytmetycznych, który przechowuje znak liczby.
 +
<hr>
 +
* [[Lista rozkazów]]
 +
* [[Rejestry]]
 +
* [[Mikroprocesor Z80]]
 +
[[Kategoria:Programowanie]][[Kategoria:Assembler]]

Aktualna wersja na dzień 13:59, 23 gru 2014

Znacznikami lub flagami nazywane są pojedyncze bity rejestru F (Flags Register).
Informują one o stanie mikroprocesora.

7 6 5 4 3 2 1 0
S Z   H   PV N CY

Bity 3 i 5 nie są używane.
Znaczniki CY, PV, Z i S można testować w rozkazach warunkowych skoków, wywołań i powrotów z podprogramów.
Znaczniki H i N używane są w arytmetyce BCD i nie mogą być testowane bezpośrednio w rozkazach warunkowych. Ich odczyt jest możliwy wyłącznie pośrednio, na przykład z użyciem poniższego kodu

; sprawdzenie stanu znacznika H
PUSH AF
POP DE
BIT 4,E

CarrY

Znacznik przeniesienia. Dla odróżnienia od rejestru C jest oznaczany jako CY. Jego położenie w rejestrze F nie jest przypadkowe. Można powiedzieć, że jest to 9-ty bit akumulatora.

Negation

Znacznik wykorzystywany przez rozkaz DAA do rozróżniania rozkazów ADD i SUB. Po wykonaniu rozkazu ADD znacznik jest kasowany, a po SUB ustawiany na 1.
Wynik rozkazu DAA jest wartością bezwzględną w zapisie BCD, a znak liczby pozostaje w znaczniku N.

Parity or oVerflow

Half carry flag

Zero

Sign

Podobnie jak w przypadku CY, położenie znacznika S w rejestrze flag jest celowe. Jest to bowiem kopia najstarszego bitu wyniku operacji arytmetycznych, który przechowuje znak liczby.