wktk's diary

日記やメモ

Pxem で階乗計算をする

13! からはオーバーフローしてうまくいかないかも
32 bit あたりが関係ありそうだけどよく知らないです

3! を計算するなら

ad.-ab.-.t.c.w.c.m.!.tab.-.-.c.a.s.m.n.pxe

5! を計算するなら

af.-ab.-.t.c.w.c.m.!.tab.-.-.c.a.s.m.n.pxe

これは最初に与えられた値の階乗をもとめるプログラムです
上記の場合なら ad.- (= 3), af.- (= 5) です
標準入力から受け取るのもいいとおもいます
もちろんファイルサイズは 0 バイトです

スタックで引数をデクリメントしながら一時領域に数を掛けていく方針です
流れを示すと

  1. 引数をスタックに置く
  2. 一時領域に 1 を置く
  3. スタックの値が 0 以外ならループ突入
  4. 一時領域の値とスタックの値を掛けて一時領域にしまう
  5. スタックの値を 1 減らす
  6. ループの最初 (3.) に戻る
  7. 一時領域の数値を表示する