Многое из сказанного далее верно и для других систем (с оговорками, конечно).
Например, есть такие интересные команды STMDB (Store Multiple Decrement Before) и LDMIA (Load Multiple Increment After), которые умеют запихивать в память (доставать из памяти) сразу по куче регистров, изменяя указатель после записи каждого регистра.
Думаю, понятно, что первую команду можно использовать как операцию PUSH в x86-процессорах. Там она помещает содержимое одного указанного регистра в стек и изменяет указатель на вершину стека. Вторую – как POP, которая действует ровно наоборот – изменяет адрес вершины стека и записывает содержимое памяти по этому указателю в заданный регистр.
блаблабла...