Strona zerowa
From Atariki
Wersja z dnia 13:39, 13 mar 2010 Mikey (Dyskusja | wkład) (prosze nie kasowac, jest stub i kategoria, bedzie sie dopisywac) ← Previous diff |
Aktualna wersja KMK (Dyskusja | wkład) |
||
Linia 1: | Linia 1: | ||
- | Obszar pamięci 0000-00FF, mający dla procesorów z rodziny 65xx specyficzne 'sprzętowe' znaczenie, ponieważ wiele rozkazów procesora wymaga argumentu na stronie zerowej, szczególnie rozkazy przesłania danych do/z pamięci adresowanej przez wskaźnik. | + | Obszar pamięci $0000-$00FF, mający dla [[6502|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 korzysta ze strony zerowej do przechowywania zmiennych i wskaźników. Poniżej lista wszystkich znanych lokacji strony zerowej z ich znaczeniem dla systemu operacyjnego: | + | System operacyjny używa strony zerowej do przechowywania zmiennych i wskaźników. Zasadniczy podział adresów wygląda następująco: |
+ | |||
+ | <table border=1 cellpadding=5> | ||
+ | <tr><td><b>Adresy</b></td><td><b>Opis</b></td></tr> | ||
+ | <tr><td>$00-$7F</td><td>Zmienne [[Atari OS|systemu operacyjnego]]</td></tr> | ||
+ | <tr><td>$80-$D3</td><td>Wolne do wykorzystania przez program użytkownika.</td></tr> | ||
+ | <tr><td>$D4-$FF</td><td>Zmienne [[Pakiet matematyczny|pakietu matematycznego]]. Do dowolnego wykorzystania, gdy program nie używa pakietu matematycznego.</td></tr> | ||
+ | </table> | ||
+ | |||
+ | "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''). | ||
- | {{stub}} | ||
[[Kategoria:Programowanie Atari 8-bit]] | [[Kategoria:Programowanie Atari 8-bit]] |
Aktualna wersja
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).