GBA ASM - День 19: Инструкция SWI

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

GBA ASM - День 19: Инструкция SWI — Архив WASM.RU

Что?!?

Вы можете спросить, почему я не сказал о SWI в прошлый раз. Я сделал это для того, чтобы говорить об одной теме за раз. SWI расшифровывается как "SoftWare Interrupt" (программное прерывание) и используется для вызова функций BIOS.

Как использовать SWI

SWI используется.. ох, просто смотрите код:

Код (Text):
  1.  
  2.     swi 0x60000  ; вызовет функцию деления

Деление - это SWI #6, и чтобы вызвать функцию, просто добавьте к её номеру 4 нуля. Я не знаю, зачем они нужны, но без них ничего работать не будет.

Вы можете спросить, откуда я узнал, что номер Divide - #6, идите сюда и смотрите секцию "BIOS".

Вызов SoftReset

SoftReset перегружает GBA и стартует код по адресу 0x8000000 (ROM) или 0x2000000 (RAM, некоторые люди перемещают туда свой код при загрузке) в зависимости от определённого регистра в памяти, который по умолчанию равен 0, что значит 0x8000000, так что у нас не будет каких-либо проблем с эим. Давайте вызовем его!

Код (Text):
  1.  
  2.     swi 0x00000  ; SoftReset - #0 , после которого ещё 4 нуля.

Просто, не правда ли? © Mike H, пер. Aquila


0 1.204
archive

archive
New Member

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