HLAでは、アクティベーションレコードに保存されているパラメーターはどの程度正確ですか?
このトピックについてはよく読んだことがありますが、問題は、パラメーターが「4バイト未満」のデータ型のいずれかである場合です。
例えば:
Procedure proc(VAL i:int32; VAL j:int16; VAL k:int16);@nodisplay;
(すべてのパラメーターがVALであることに注意してください)
すべてのパラメーターが(少なくとも)4バイトのブロックを割り当てることはどこにも言及されていないため、kはEBP + 8に、jはEBP + 10に、iはEBP+12にあると予想されます。
しかし、いくつかのstdout.putsによると、そうではありません。(少なくとも私のシステムではありません)kはEBP + 8にあり、jはEBP + 12にあり、iはEBP+16にあります。
パラメータが4バイトのブロックを割り当てることを指摘しているリソースはありますか?それとも私のHLAは誤動作していますか?