GBA ASM - День 22: Сохранение и 0xE000000

Дата публикации 10 сен 2006

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

Введение

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

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

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

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

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

Код (Text):
  1.  
  2.     ldr r1,=0xE000000
  3.     ldrb r1,[r1]

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

Код (Text):
  1.  
  2.     ldr r1,=0xE000000
  3.     ldr r2,=0xFF  ; мы собираемся записать 0xFF в SRAM
  4.     ; обратите внимание, что мы, скорее всего, используем обычный LDR
  5.         ; для загрузки числа в регистр
  6.     strb r2,[r1]

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

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

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


0 1.241
archive

archive
New Member

Регистрация:
27 фев 2017
Публикаций:
532