<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Ustawianie_i_kasowanie_znacznik%C3%B3w</id>
	<title>Ustawianie i kasowanie znaczników - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Ustawianie_i_kasowanie_znacznik%C3%B3w"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Ustawianie_i_kasowanie_znacznik%C3%B3w&amp;action=history"/>
	<updated>2026-10-04T03:02:06Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Ustawianie_i_kasowanie_znacznik%C3%B3w&amp;diff=4074&amp;oldid=prev</id>
		<title>imported&gt;Atariki recovery: Reconstructed from archived HTML; see provenance manifest</title>
		<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Ustawianie_i_kasowanie_znacznik%C3%B3w&amp;diff=4074&amp;oldid=prev"/>
		<updated>2026-10-01T08:51:48Z</updated>

		<summary type="html">&lt;p&gt;Reconstructed from archived HTML; see provenance manifest&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Gdy w programie zachodzi potrzeba zastosowania globalnego, dwustanowego znacznika (tzw. flagi), najwygodniej jest w tym celu użyć bitów 7 lub 0 komórki pamięci:&lt;br /&gt;
&lt;br /&gt;
== Bit 7 ==&lt;br /&gt;
&lt;br /&gt;
Bit 7 komórki pamięci, gdy pozostała jej zawartość nie ma dla programu znaczenia, można ustawić rozkazem ROR. Zamiast:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lda #$80&lt;br /&gt;
    sta znacznik&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
można zaoszczędzić 1 bajt programu w ten sposób:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    sec&lt;br /&gt;
    ror znacznik&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analogicznie, do skasowania bitu 7 można użyć rozkazu LSR. Zamiast:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lda #$00&lt;br /&gt;
    sta znacznik&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
piszemy:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lsr znacznik&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oszczędzając dwa bajty. Dodatkową korzyścią jest ustalenie stanu bitu N rejestru znaczników procesora (zawsze skasowany po LSR), tak więc gdy zachodzi potem potrzeba wykonania krótkiego skoku bezwarunkowego, zamiast JMP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lsr argument&lt;br /&gt;
    jmp adres&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
można użyć BPL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lsr argument&lt;br /&gt;
    bpl adres&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdy chcemy skasować bit 7 komórki pamięci nie naruszając stanu pozostałych jej bitów, zamiast:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lda znaczniki&lt;br /&gt;
    and #$7f&lt;br /&gt;
    sta znaczniki&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oszczędzamy dwa bajty pisząc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    asl znaczniki&lt;br /&gt;
    lsr znaczniki&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sprawdzenie stanu takiego znacznika robi się rozkazem BIT lub LDA/LDX/LDY i odgałęzieniem BPL/BMI zależnie od potrzeb. Zamiast:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lda znacznik&lt;br /&gt;
    and #$80&lt;br /&gt;
    bne ustawiony&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
piszemy:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    bit znacznik&lt;br /&gt;
    bmi ustawiony&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sprawdzenie z automatycznym skasowaniem (jeśli pozostałe bity bajtu mają wartość 0), zamiast:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lda znacznik&lt;br /&gt;
    bpl skasowany&lt;br /&gt;
    and #$7f&lt;br /&gt;
    sta znacznik&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
możemy napisać:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    asl znacznik&lt;br /&gt;
    bcc skasowany&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bit 0 ==&lt;br /&gt;
&lt;br /&gt;
Ustawianie i kasowanie bitu 0 robi się analogicznie jak wyżej opisano z bitem 7. Ustawienie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    sec&lt;br /&gt;
    rol znacznik&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skasowanie, gdy pozostałe bity nie mają znaczenia:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    asl znacznik&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
albo, gdy mają:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lsr znaczniki&lt;br /&gt;
    asl znaczniki&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sprawdzenie stanu z automatycznym skasowaniem (warunek jak powyżej):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lsr znacznik&lt;br /&gt;
    bcs ustawiony&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sprawdzenie stanu bez skasowania, zamiast:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lda znacznik&lt;br /&gt;
    and #$01&lt;br /&gt;
    bne ustawiony&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oszczędzamy 1 bajt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    lda znacznik&lt;br /&gt;
    lsr&lt;br /&gt;
    bcs ustawiony&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Niezbędnik kodera]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>