Условные обозначения стандарта вызова процедуры ARM
Стандарт вызова процедуры ARM (APCS) определяет условные обозначения, используемые компилирующими программами при вызове функций. Так компилирующая программа С взывает функции (кроме особенных условий). Нет необходимости следовать данным условным обозначениям в том случае, если Вы создаете собственные интерпретирующие программы: только в этом случае Вы не сможете вызвать эти программы из программы С. Ниже приведено описание регистров APCS. При вызове процедуры другой программой считается, что некоторые регистры не будут изменены вызываемой программой. Вызываемая программа должна сохранить и восстановить данные значения в том случае, если необходимо изменить один из таких регистров.
Условные обозначения стандарта вызова процедуры ARM
R0-R3 Нет Используется для передачи функциям параметров. Параметры, не попадающие в данные регистры, переносятся в стековую память.
R4-R10 Да Б основном, используются для регистровых переменных. Регистры R9 и R10 также используются для стековой обработки при переключении модуля, однако, это Вам вряд ли понадобится.
Rll (fp) Да Используется в качестве указателей фреймов. Задается и восстанавливает значение при вводном/конечном коде, так как является указателем, к которому обращаются все локальные переменные.
R12 (ip) Нет Me ж канальный указатель.
Для большинства программ GBA — регистр начальной позиции.
R13 (sp) Да Указатель вершины стека. Указывает на последний объект, помещенный в стековую память. Стек является полностью нисходящим. Это означает, что он сокращается (по направлению к младшим адресам) в памяти, и указатель показывает на следующий объект, выталкиваемый из стека.
R14(br) Нет Известен как регистр связи. Содержит адрес возврата к подпрограмме. Часто помещается в стек, а затем напрямую выталкивается в программный счетчик для возврата.
R15 (pc) Нет Данный регистр является программным счетчиком. Для выполнения скачка не обходимо напрямую изменить его.
Примечание: Данные обозначения часто используются в ассемблерных и дизассемблерных программах.