Strona zerowa

From Atariki

Jump to: navigation, search

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:

AdresyOpis
$00-$7FZmienne systemu operacyjnego
$80-$D3Wolne do wykorzystania przez program użytkownika.
$D4-$FFZmienne 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).

Personal tools