ジャンプと別にコールとリターンがあるCPUの設計思想としては、「1つの命令で複雑なことができた方が良い」ということがあると思います。
「戻りアドレスをどこかに保存して関数へジャンプ」や「戻りアドレスをどこかから取り出してそこへジャンプ」はよく使われる処理の流れなので、専用の命令を作ろうというわけです。
そうでないCPUもあって、例えばリターンの無いCPUはわりと多く、知っているところでARMとMIPSとRISC-Vと、あとPowerPCとSPARCもそうかな。
理由ですが、「命令は単純なもののみにすればCPUは小さくできるし1つ1つの命令は高速に実行できる」ということ、
あとスタックはメモリの読み書きが発生して遅いので、戻りアドレスをレジスタに保管する方が速いという理由もあります。
そうするとリターン側はレジスタの内容でジャンプするという一般的なジャンプ命令で済むようになります。
コール側の専用命令はありますが、命令名はジャンプ&リンクとかブランチ&リンクとするものが多いと思います。ブランチとジャンプはだいたい同じ意味で使われます。戻りアドレスをレジスタに保管することをリンクと呼びます。
この辺の設計思想の違いについてはCISCとRISCで調べるとよいかと。
あとコール側も無いCPUも1つだけ知っています。
SuperFXというCPUで、上記ジャンプ&リンクの内リンクだけをするLINK命令があります。
関数呼び出しはLINK命令と普通のジャンプ命令の2命令です。
ただLINK命令に関数呼び出し以外に出番があるかというとたぶん無くて、結局関数呼び出し専用命令があるのとあまり変わりませんね。
あとは専用のコール・リターン命令ではスタックが足りないなど何らかの問題がある時、コールとリターンは要するにPCをどこかに保存してそこへジャンプすればよいのだと知っていれば、そういうコードを書いて制限を超えることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。