BLD命令とBST命令の実装 更新日:2021年3月14日 公開日:2021年3月6日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 1週間ぶりの命令セットシミュレータです。 ちょっと地味な命令が続きますが、ステータスレジスタの操作は機械語ではすごく大事ですので早い段階でやってしまいますね。 BLD命令の実装 BLD命令という […] 続きを読む
BSET命令とBCLR命令の実装 公開日:2021年2月27日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 前回、前々回でCPUの命令をどんどん追加していくための準備が整いました。 今回から具体的な命令を実装していくことにします。 クロック数の加算 BSET命令とBCLR命令の実装を見ていく前に、前回 […] 続きを読む
オペコード配列を自動生成する 更新日:2021年2月27日 公開日:2021年2月23日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 前回は命令セットシミュレータの骨格を作りました。 そこで出てきたdecode関数の中にop_tableという配列があったのですが、今回はその配列の要素を生成する方法について書いてみます。 配列要 […] 続きを読む
シミュレータの骨格 更新日:2021年3月23日 公開日:2021年2月21日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 前回までは主にデータ構造の話でした。 今回からは実際の動作に関わる部分を作っていきます。 といっても一足飛びに進めることはできませんので、少しずつ積み上げていくことにします。 その第一歩として、 […] 続きを読む
CPUのデータ構造 公開日:2021年2月14日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! これまでAVRの個々のメモリやレジスタについて見てきました。 今回はそれらをまとめたデータ構造を作ってみようと思います。 以前の記事を書いたあと、「もっとこうした方がいい」といったアイデアが出て […] 続きを読む
ステータスレジスタ 更新日:2021年2月14日 公開日:2021年2月7日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回はステータスレジスタについて考えていくことにします。 ステータスレジスタをやれば、一通りCPUのレジスタについては考えたことになります。 ステータスレジスタとは? 「ステータスレジスタ」とい […] 続きを読む
プログラムカウンタ 公開日:2021年1月31日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 週に1回しか投稿していないと以前何を書いていたのかわすれちゃいますね。 見返してみて前回がスタックポインタだったことをやっと思い出しました。 今日はプログラムカウンタを考えることにします。 プロ […] 続きを読む
スタックポインタ 公開日:2021年1月23日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 1週間に1回程度の更新なので間が空いてしまいますね。 忘れてしまった方はぜひ前の投稿も読んでみてください! さて、今回は「スタックポインタ」について考えてみたいと思います。 その前に「スタック」 […] 続きを読む
使用するコンパイラの要件 更新日:2021年1月18日 公開日:2021年1月16日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回はすごく簡単に済ませます。 命令セットシミュレータに使用するCコンパイラの要件を挙げてみたいと思います。 標準Cにもいくつかのバージョンがあります。 また、処理系による方言もあれば、処理系定 […] 続きを読む
汎用レジスタファイル 公開日:2021年1月11日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 前回出てきたデータメモリにも少し現れましたが、今回は汎用レジスタファイルについて考えていきます。 念のためデータメモリのメモリマップを再掲載しますね。 一番上(アドレスとしては下位)に「レジスタ […] 続きを読む