LDI命令の実装 更新日:2021年4月11日 公開日:2021年4月10日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 命令セットシミュレータのブログはほとんどワンパターンになってしまいましたね。 でも、別にバラエティを狙っているわけではないので、とことん地味でワンパターンで進めていきます(笑) LDI命令の実装 […] 続きを読む
SLEEP命令の実装 公開日:2021年4月5日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! AVRには特殊な命令がいくつかあります。 それらはCPUの機能そのものというよりマイコン内部のCPU周辺回路に依存する部分が大きいので、今回は何もしない命令として扱うことにします。 SLEEP命 […] 続きを読む
スキップ命令の実装 公開日:2021年4月4日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回はスキップ命令を一気に実装してしまいます。 AVRには5つのスキップ命令があるんですけど、そのうちCPSE命令はすでに実装済みですので、今回は残りの4つを実装します。 SBRS命令とSBRC […] 続きを読む
IN命令とOUT命令の実装 公開日:2021年4月3日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 本当は前回のCPSE命令に続いてスキップ命令を一気にやってしまおうと思ったんですけど、I/Oレジスタを扱う命令がありますので先にIN命令とOUT命令を実装することにしました。 IN命令の実装 ま […] 続きを読む
CPSE命令の実装 公開日:2021年3月28日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回は、前回行った骨格の変更が必要になる命令を早速追加していくことにします。 CPSE命令の実装 今回実装するCPSE命令は、2本の汎用レジスタを比較して、保持している値が一致していれば直後の命 […] 続きを読む
骨格の変更 公開日:2021年3月27日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回はいつもとはちょっと違って、以前に扱った箇所の変更を扱います。 実装の初期に書いた「シミュレータの骨格」で扱った内容に変更を加えていくことにします。 変更の理由 単なるバグであれば過去の記事 […] 続きを読む
BRBS命令とBRBC命令の実装 公開日:2021年3月21日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回はBRBS命令とBRBC命令を実装します。 AVRのプログラムをアセンブリ言語で書いたことがある方でも、これらの命令をご存じないかもしれませんね。 実はこれらの命令は、ステータスレジスタのど […] 続きを読む
JMP命令とRJMP命令の実装 公開日:2021年3月14日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今年に入ってからATmega328の命令セットシミュレータを作っています。 ゆっくりしたペースですが、少しずつ形になってきていると思います。 今は地道に命令を追加していくだけですので、比較的簡単 […] 続きを読む
BLD命令とBST命令の実装 更新日:2021年3月14日 公開日:2021年3月6日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 1週間ぶりの命令セットシミュレータです。 ちょっと地味な命令が続きますが、ステータスレジスタの操作は機械語ではすごく大事ですので早い段階でやってしまいますね。 BLD命令の実装 BLD命令という […] 続きを読む
BSET命令とBCLR命令の実装 公開日:2021年2月27日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 前回、前々回でCPUの命令をどんどん追加していくための準備が整いました。 今回から具体的な命令を実装していくことにします。 クロック数の加算 BSET命令とBCLR命令の実装を見ていく前に、前回 […] 続きを読む