|
• Регистрация •
FAQ
• Вход
|
|
Страница 1 из 1
|
[ Сообщений: 4 ] |
|
Использование всех адресов Zero Page
Автор |
Сообщение |
08 ноя 2013, 23:16 |
|
Зарегистрирован: 06 апр 2008, 13:46 Сообщения: 119
|
Изучаю ассемблер 6502. В одном из учебников встретилось такое: Цитата: $0000-$00FF – “Нулевая страница” (Zero Page) – используется для системных целей (для программ предпочтительны адреса $10-$9F, прочие лучше не трогать). Процессор имеет отдельные инструкции, обеспечивающие быстрый доступ к нулевой странице. Но почему — не объясняется. Я же вижу, что в том же Battle City первые 16 байт активно используются. Так есть ли подводные камни, или всё-таки можно использовать любые адреса в Zero Page для своих целей?
|
 |
09 ноя 2013, 01:16 |
|
Зарегистрирован: 22 июл 2007, 02:10 Сообщения: 313 Откуда: ниоткуда
|
Можно, игры это и делают. Нулевая страница укорачивает размер инструкции и ускоряет её выполнение. Почему не советуют пользоваться нулевой страницей: обычно учебники по ассемблеру пишут с предположением, что есть некая ОС, которая занимает какую-то часть памяти, а пользователь пишет свою программу, которая бы работала под управлением ОСи. В таком случае действительно ОС скорей всего использовала бы нулевую страницу, и юзеру не рекомендуется туда лезть. Но в приставках не ОСи.
_________________ Мысль - это интеллектуальный эксцесс данного индивидуума.
|
 |
09 ноя 2013, 17:40 |
|
Зарегистрирован: 06 апр 2008, 13:46 Сообщения: 119
|
Спасибо за информацию. Будем значит вовсю использовать 
|
 |
10 ноя 2013, 15:38 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 569
|
Обычно на нулевой странице хранятся всякие однобайтовые переменные, которые влияют на логику игры (типа флагов, очков, координат героя итп.)
Первая страница понятное дело для стека.
А вторая страница обычно используется для DMA пересылки спрайтов (каждый Vblank). Рефрешить спрайтовую память PPU необходимо потому что она постоянно "утекает" (там используется специальный тип памяти, что-то типа DRAM, но без рефреш-логики)
Ну а остальная WRAM (work RAM, так называется RAM в NES) используется для разнообразных буферов, типа карты уровня, врагов, итп.
Но это не обязательное распределение памяти, просто разработчики так обычно делали. Но вообще можно использовать как хочешь, главное не забывай что первая страница для стека и она "заворачивается" при переполнении (слишком много вложенных JSR делать нельзя)
|
 |
|
|
Страница 1 из 1
|
[ Сообщений: 4 ] |
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|