- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!「値をスタックに積む」を実行する
プログラム配列prog[prog_cnt]の内容がCODE_PUSHであった場合は、
*コードの次の値prog[prog_cnt + 1]をスタックに積む内容とする
*push()を呼び出す
*prog_cntを2増やす
プログラムカウンタprog_cntは、コード自身とプッシュする値とで、全部で2進めないといけない。
void proc_prog(void)
{
while (prog[prog_cnt] != CODE_END) {
switch (prog[prog_cnt]) {
case CODE_PUSH:
push(prog[prog_cnt + 1]);
prog_cnt += 2;
break;
}
}
}
同じようにCODE_PLUSとCODE_PRINTの時も処理する。
void proc_prog(void)
{
while (prog[prog_cnt] != CODE_END) {
switch (prog[prog_cnt]) {
case CODE_PUSH:
push(prog[prog_cnt + 1]);
prog_cnt += 2;
break;
case CODE_PLUS:
plus();
prog_cnt++;
break;
case CODE_PRINT:
print();
prog_cnt++;
break;
}
}
}
[[戻る|ForthImplementation]] [[前へ|ScanningProgramCode]] [[次へ|PreparingProgram]]
{{adsence}}
[[Forthを作ってみる / 「値をスタックに積む」を実行する]]に移動しました。