GBA ASM - День 19: Инструкция SWI — Архив WASM.RU
Что?!?
Вы можете спросить, почему я не сказал о SWI в прошлый раз. Я сделал это для того, чтобы говорить об одной теме за раз. SWI расшифровывается как "SoftWare Interrupt" (программное прерывание) и используется для вызова функций BIOS.
Как использовать SWI
SWI используется.. ох, просто смотрите код:
Код (Text):
swi 0x60000 ; вызовет функцию деленияДеление - это SWI #6, и чтобы вызвать функцию, просто добавьте к её номеру 4 нуля. Я не знаю, зачем они нужны, но без них ничего работать не будет.
Вы можете спросить, откуда я узнал, что номер Divide - #6, идите сюда и смотрите секцию "BIOS".
Вызов SoftReset
SoftReset перегружает GBA и стартует код по адресу 0x8000000 (ROM) или 0x2000000 (RAM, некоторые люди перемещают туда свой код при загрузке) в зависимости от определённого регистра в памяти, который по умолчанию равен 0, что значит 0x8000000, так что у нас не будет каких-либо проблем с эим. Давайте вызовем его!
Код (Text):
swi 0x00000 ; SoftReset - #0 , после которого ещё 4 нуля.Просто, не правда ли? © Mike H, пер. Aquila
GBA ASM - День 19: Инструкция SWI
Дата публикации 10 сен 2006