はじめまして。ご指摘ありがとうございます。
>ベースポインタ-24、-28と「仮引数a,b」の位置関係が正しいとすると、ベース
>ポインタとベースポインタ-4に格納される「退避したベースポインタ」とローカル
>変数:resultの位置は、-4バイトずれていないでしょうか。
>
>ベースポインタ:-20とベースポインタ:-4の間に、12バイト分のスペースしかない
>のも少し気になりました。
申し訳ありません。誤植です。
言い訳になりますが、私が編集さんに渡したFig2-8の原本は以下です。
http://kmaebashi.com/etc/basepointer.png
これをデザイナさんが書き直した際に、
①「ローカル変数result」と「退避したベースポインタ」を書く場所を1段間違え、
②「ベースポインタ」の右の矢印「→」をつけ忘れる
というミスをされたようです。
もちろんゲラをチェックするのは私の仕事ですので、見落として本になって
しまったのは私の責任です。
元の図も、「退避したベースポインタ」が4バイトに見える、というのは
ちょっと問題ですね……
正誤表に上げさせていただきます。