リスト2 オブジェクト展開例 ●ソースリスト 10 B=100:C=300:D=2:E=3 20 A=B+C/(D+E)*20 30 PRINT A ●コンパイル結果 変数アドレスリスト 40C6H B 40C8H C 40CAH D 40CCH E 40CEH A ランタイムルーチン 3603H 代入 32DCH 加算 3387H 除算 3334H 乗算 オブジェクトの展開 10 B=100 4061 21 C6 40 LD HL,40C6H 変数Bのアドレスをスタックへ 4064 E5 PUSH HL 4065 21 64 00 LD HL,0064H 数値100をスタックへ 4068 E5 PUSH HL 4069 CD 03 36 CALL 3603H スタックトップの数値をスタック2番目の変数アドレスに格納(代入処理ランタイム) C=300 406C 21 C8 40 LD HL,40C8H 変数Cのアドレスをスタックへ 406F E5 PUSH HL 4070 21 2C 01 LD HL,012CH 数値300をスタックへ 4073 E5 PUSH HL 4074 CD 03 36 CALL 3603H スタックトップの数値をスタック2番目の変数アドレスに格納(代入処理ランタイム) D=2:E=3 4077 21 CA 40 LD HL,40CAH 407A E5 PUSH HL 407B 21 02 00 LD HL,0002H 407E E5 PUSH HL 407F CD 03 36 CALL 3603H 4082 21 CC 40 LD HL,40CCH 4085 E5 PUSH HL 4086 21 03 00 LD HL,0003H 4089 E5 PUSH HL 408A CD 03 36 CALL 3603H 20 A=B+C/(D+E)*20 408D 21 CE 40 LD HL,40CEH 変数Aのアドレスをスタックへ 4090 E5 PUSH HL 4091 2A C6 40 LD HL,(40C6H) 変数Bの値をスタックへ 4094 E5 PUSH HL 4095 2A C8 40 LD HL,(40C8H) 変数Cの値をスタックへ 4098 E5 PUSH HL 4099 2A CA 40 LD HL,(40CAH) 変数Dの値をスタックへ 409C E5 PUSH HL 409D 2A CC 40 LD HL,(40CCH) 変数Eの値をスタックへ 40A0 E5 PUSH HL 40A1 CD DC 32 CALL 32DCH スタックトップの数値とスタック2番目の数値を足してスタックトップに格納 (D+E) 40A4 CD 87 33 CALL 3387H スタック2番目の数値をスタックトップの数値で割り算してスタックトップに格納 C/(D+E) 40A7 21 14 00 LD HL,0014H 数値20をスタックへ 40AA E5 PUSH HL 40AB CD 34 33 CALL 3334H スタックトップの数値とスタック2番目の数値を掛け算してスタックトップに格納 C/(D+E)*20 40AE CD DC 32 CALL 32DCH スタックトップの数値とスタック2番目の数値を足してスタックトップに格納 B+C/(D+E)*20 40B1 CD 03 36 CALL 3603H スタックトップの数値をスタック2番目の変数アドレスに格納 A=B+C/(D+E)*20 40B4 3E 00 LD A,00H