!!!「値をスタックに積む」を実行する プログラム配列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; } } } [[戻る|Forthを作ってみる]] [[前へ|Forthを作ってみる / プログラム配列を走査する]] [[次へ|Forthを作ってみる / プログラムを用意する]] {{adsence}}