GBA ASM - День 22: Сохранение и 0xE000000 — Архив WASM.RU
Введение
Ок... Я понял, что нужно затронуть ещё один важный вопрос. Сегодня мы собираемся рассмотреть, как сохранить что-то в картридж.
Инструкции LDRB/STRB
Эти инструкции загружают или сохраняют в/из памяти и нужны для того, чтобы читать/писать в память сохранения (SRAM). Они работают так же, как и другие инструкции загрузки/сохранения.
Память сохранения находится по адресу E000000. Всё, что вам нужно, это записать что-либо по любому адресу с 0xE000000 до 0xE00FFFF (это 64kb памяти) с помощью инструкции STRB. Чтобы читать из SRAM, используйте инструкцию LDRB. Просто!
Чтение первого байта из SRAM:
Код (Text):
ldr r1,=0xE000000 ldrb r1,[r1]Запись первого байта в SRAM:
Код (Text):
ldr r1,=0xE000000 ldr r2,=0xFF ; мы собираемся записать 0xFF в SRAM ; обратите внимание, что мы, скорее всего, используем обычный LDR ; для загрузки числа в регистр strb r2,[r1]Надеюсь, это поможет всем, у кого проблемы с SRAM, хотя думаю, что это не так, потому что её очень легко использовать.
Обзор этого дня
Учитывая, что сохранение настолько просто, удивительно, что множество игр используют систему паролей... © Mike H, пер. Aquila
GBA ASM - День 22: Сохранение и 0xE000000
Дата публикации 10 сен 2006