Znaczniki: Różnice pomiędzy wersjami
(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"| | |style="text-align:center; background-color: lightgray"| | ||
− | |style="text-align:center"| | + | |style="text-align:center"|PV |
|style="text-align:center"|N | |style="text-align:center"|N | ||
− | |style="text-align:center"| | + | |style="text-align:center"|CY |
|} | |} | ||
Bity 3 i 5 nie są używane.<br> | Bity 3 i 5 nie są używane.<br> | ||
− | Znaczniki | + | 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
Spis treści
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.