В системе архитектуры ARM ЦП напрямую обращается к памяти, контролирует состояние и данные в памяти, отображает внешние устройства в памяти, а периферийное устройство изменяет внутреннюю ситуацию периферийного устройства посредством данных о состоянии в памяти; Например: когда ЦП считывает данные с жесткого диска, он сначала обращается к соответствующему блоку памяти A в памяти. Блок памяти отправляет команду контроллеру жесткого диска. Контроллер жесткого диска извлекает данные и помещает их в другую часть. память B. Через переход состояния памяти он уведомляет, что память была прочитана. После завершения выборки ЦП может напрямую получить доступ к данным в блоке памяти B в памяти; Все периферийные устройства в основном имеют собственную память, некоторые отображаются в памяти, а некоторые имеют собственную память, например память видеокарты;
Приложение запрашивает память у системы, и система выделяет память посредством системных вызовов. После завершения выделения памяти приложению возвращается первый адрес памяти.
После подачи заявки на память необходимо освободить память, иначе это приведет к утечкам;
Если параметр меньше или равен
, вам нужно использовать только R0, R1, R2
регистры хранят параметры, это
Замаскированный регистр называется стеком;
Если параметр больше или равен
, то в регистр R3 записывается адрес стека (начальная позиция стека), как показано на рисунке ниже;
В ARM указатель стека будет только помещен в регистр, но не использован; при использовании параметров в стеке адрес стека будет сохранен в регистре переменных, и будет использоваться адрес в регистре переменных;