GBA ASM - День 22: Сохранение и 0xE000000 — Архив WASM.RU

Все статьи

GBA ASM - День 22: Сохранение и 0xE000000 — Архив WASM.RU

Введение

Ок... Я понял, что нужно затронуть ещё один важный вопрос. Сегодня мы собираемся рассмотреть, как сохранить что-то в картридж.

Инструкции LDRB/STRB

Эти инструкции загружают или сохраняют в/из памяти и нужны для того, чтобы читать/писать в память сохранения (SRAM). Они работают так же, как и другие инструкции загрузки/сохранения.

Память сохранения находится по адресу E000000. Всё, что вам нужно, это записать что-либо по любому адресу с 0xE000000 до 0xE00FFFF (это 64kb памяти) с помощью инструкции STRB. Чтобы читать из SRAM, используйте инструкцию LDRB. Просто!

Чтение первого байта из SRAM:

	ldr r1,=0xE000000
	ldrb r1,[r1]

Запись первого байта в SRAM:

	ldr r1,=0xE000000
	ldr r2,=0xFF  ; мы собираемся записать 0xFF в SRAM
	; обратите внимание, что мы, скорее всего, используем обычный LDR 
        ; для загрузки числа в регистр
	strb r2,[r1]

Надеюсь, это поможет всем, у кого проблемы с SRAM, хотя думаю, что это не так, потому что её очень легко использовать.

Обзор этого дня

Учитывая, что сохранение настолько просто, удивительно, что множество игр используют систему паролей...

2002-2013 (c) wasm.ru