アセンブラになれば関数を作るにしても引数をどうするかなどいろいろ考えないと行けない訳で
それがCになると基本的には自動的にスタックに引数を積む事になるけど
アセンブラでは簡単にするならレジスタ渡しになるわけだが
昔はそのレジスタもあまり数が無く退避させるために
サブルーチンを呼ぶ前にスタックにプッシュして
戻ってきてからポップして復元するなど色々あったな
サブルーチン側でレジスタをもとの状態に保証する為に退避なんてこともあった