2019-06-01から1ヶ月間の記事一覧
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 準備が整ったので while やります! ["var", "a"] , ["set", "a", 0] , ["while", ["eq", 0, 0] , ["set", "a", ["+", "a", 1]] ] こんな感じでやりたいのですが!! ["eq", 0, 0] の部分の eq が…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 分岐ができたので次はループをやりたいですね。 簡単なところで、数を1ずつ増やしていくカウンタとか。 ["var", "a"] , ["set", "a", 0] , ["while" , ["eq", 0, 0] // 条件: 必ず真になるようにし…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 関数まわりが整備できたので、次は条件分岐(if文)やりましょうか。 えーと、こんな感じで…… ["if" , ["eq", 33, 31] , [ ["set_reg_a", 11] ] , [ ["set_reg_a", 22] ] ] こんな感じで作っていま…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 関数呼び出しができて、 ローカル変数が使えるようになって、 引数も渡せるようになりました。 あと関数まわりは返り値をどうにかすれば一通り必要なものが揃います。 今回は次の2つのステップに分…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 今回は関数の引数をやります。こんな感じで進めましょう。 引数を1個渡す 渡した引数をローカル変数に代入 引数を2個渡してローカル変数に代入 引数を1個渡す これを動かします。 // 19_func_arg.v…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る どうすれば「本棚の左端から36番目の本を取って」と言う代わりに「広辞苑を取って」と言えるようになるでしょうか? コンピュータが名前とモノの対応表を持てばよいのです。 『コーディングを支え…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 空の main 関数の実行の次は、 main から 別の関数の呼び出しをやってみましょう。 簡単そうですが、これも一歩ずつということで 2段階に分けます。 関数定義を並べるだけ(main からの呼び出しは…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 条件分岐とループができて、 サブルーチンの呼び出しができて、引数が渡せて、 結果を返せて、ローカル変数が使えるようになった!!! ので、これくらい揃えばもうなんでもできるんじゃね!?!?…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 今回はローカル変数をやります! これまでスタックをこんな風に使っていました。 ベースポインタ 戻り先アドレス 引数1 引数2 入れ子の呼び出しがある場合はこう: ベースポインタ 戻り先アドレス …
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 前回は引数を 1個だけ渡すサブルーチン呼び出しができるようになりましたが、 今回はそれを 2個にしてみます。 それから、返り値の渡し方を調べたところ、 とりあえずは reg_a にセットすればよさ…