動的記憶域・スタック
≪ 機械語におけるPUSH,POPの説明用 ≫ #define STACKSIZE たっぷり int stack[ STACKSIZE ] ; int sp = stack + STACKSIZE ; int fp ; push( int x ) { sp-- ; stack[ sp ] = x ; } int pop( ) { int ans = stack[ sp ] ; sp++ ; return ans ; } ≪ 関数呼出しで何が行われるか ≫ foo( int x , int y ) { int s , int t ; : } void main() { int a , b ; foo( a , b ) ; : } ≪ 機械語もどき ≫ foo: push( fp ) ; ret ; main: push( b ) ; push( a ) ; call foo ; sp += 2 ;