Strona zerowa
From Atariki
←Older revision | Newer revision→
Obszar pamięci $0000-$00FF, mający dla procesorów z rodziny 65xx specyficzne, 'sprzętowe' znaczenie, ze względu na istnienie oddzielnego trybu adresowania "strony zerowej", szybszego niż adresowanie reszty pamięci. Na stronie zerowej typowo umieszcza się wskaźniki, gdyż wymagają tego prawie wszystkie (oprócz JMP) rozkazy działające w pośrednim trybie adresowania.
System operacyjny używa strony zerowej do przechowywania zmiennych i wskaźników. Zasadniczy podział adresów wygląda następująco:
Adresy | Opis |
$00-$7F | Zmienne systemu operacyjnego |
$80-$D3 | Wolne do wykorzystania przez program użytkownika. |
$D4-$FF | Zmienne pakietu matematycznego. Do dowolnego wykorzystania, gdy program nie używa pakietu matematycznego. |
"Programem użytkownika" jest np. wewnętrzny interpreter Atari BASIC.
Procesor 65C816 zawiera 16-bitowy rejestr-wskaźnik strony zerowej. Przez modyfikację jego zawartości można stronę zerową umieścić pod dowolnym adresem z zakresu $0000-$FFFF, tryby adresowania strony zerowej będą wówczas używać wskazanego obszaru zamiast zwykłych adresów $0000-$00FF. Jednak rozkazy będą działać z normalną szybkością tylko wtedy, kiedy wskazywany przez rejestr D adres będzie podzielny przez 256 - w przeciwnym wypadku każdy dostęp zajmie o 1 cykl więcej niż normalnie.
W związku z tym, że strona zerowa w 65C816 nie jest już ściśle "zerowa", w terminologii producenta nazywana jest "stroną bezpośrednią" (ang. direct page).