オペコード配列を自動生成する 更新日: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日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 前回出てきたデータメモリにも少し現れましたが、今回は汎用レジスタファイルについて考えていきます。 念のためデータメモリのメモリマップを再掲載しますね。 一番上(アドレスとしては下位)に「レジスタ […] 続きを読む
ATmega328のメモリマップ 公開日:2021年1月4日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 前回からスタートした命令セットシミュレータの開発について、もう少し具体的な内容を詰めていくことにします。 今回の内容は「メモリマップ」についてです。 メモリマップとは? メモリマップとは何かとい […] 続きを読む
命令セットシミュレータの構想 公開日:2021年1月2日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今年からスタートする新企画について前回お伝えしました。 今回はその新しい企画である「命令セットシミュレータ」について具体的な構想を書いてみることにします。 なぜ命令セットシミュレータを開発するの […] 続きを読む