|
(2)ローカル変数、引数へのアクセス
それでは、bc レジスタのフレームポインターによりローカル変数や引数にアクセスするところをしめします.
@ local1 へのアクセス
ld add ld inc ld ld | hl,-002 hl,bc a,(hl) hl l,(hl) h,a |
|
A arg2 へのアクセス
ld add ld ld | hl,006 hl,bc l,(hl) h,0 |
|
B local2 の要素2へのアクセス
ld add inc inc ld ld | hl,-005 hl,bc hl hl l,(hl) h,0 |
|
(3)関数呼び出し、戻り時の処理
関数を呼び出す時は、右側の引数から左に向かって順にスタックにプッシュした後、目的の関数を単にサブルーチンコールするだけです.呼び出された関数からリターンしてきた後、引数をプッシュした分だけスタックを開放します.引数は、型にかかわらず2バイトの大きさでプッシュしています.
........................................
ld push ld push call pop pop | hl,(arg2) hl hl,(arg1) hl func2 af af |
........................................
|
func1()
{
............................
func2(arg1,arg2);
............................
}
|
|