ご存知のように、サブルーチンが呼び出されると、現在の PC (プログラム カウンター) の値がスタックに格納されます。以下のように、サブルーチン内で変更したいと思います。gcc コンパイラを使用して Intel Core-i7 3632QM でこれを実行したいと考えています。
void main()
{
foo();
}
void foo()
{
pop return address from stack;
modify return address;
push it to stack;
}