BREAK命令の実装 公開日:2021年8月1日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! そろそろまだ実装していない命令を探すのが大変になってきました。 今回、LAC、LAS、LATの3命令を実装しようと思ったんですけど、これらの命令はATmega328では利用不可でした。 そこであ […] 続きを読む
COM命令とNEG命令の実装 公開日:2021年7月18日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! まだ実装していない命令は残りわずかになってきました。 今回も何が残っているのか探して見つけたのがこの2つの命令です。 もしかすると全然違う命令だと思われた方もいらっしゃるかもしれませんが、要する […] 続きを読む
キャリーを含めた減算命令の実装 公開日:2021年7月11日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 前回に引き続き、今回も減算命令を実装していきます。 前回と違うのは、今回は繰り下がりを考慮した減算だということです。 繰り下がりにも繰り上がりと同様、Cフラグ(キャリーフラグ)を使います。 SB […] 続きを読む
減算命令の実装 公開日:2021年7月4日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 前回は加算命令を実装しましたので今回は減算命令を実装していきます。 加算命令と対象になっていないことにちょっと違和感がありますが、気にせず進めます。 AVRの減算命令は大きく分けて2種類あって、 […] 続きを読む
加算命令の実装 更新日:2021年7月4日 公開日:2021年6月27日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回は一気に3命令実装していきます。 加算のための命令たちで、ADD命令、ADC命令、ADIW命令です。 ADDI命令みたいなのがないことにはちょっと違和感があります。 減算にはSUBI命令とい […] 続きを読む
INC命令とDEC命令の実装 更新日:2021年6月26日 公開日:2021年6月20日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回からいよいよ算術命令を実装していきます。 算術命令はステータスレジスタの振る舞いが複雑なのであと回しにしてきました。 でも、これ以上あと回しにはできませんので、順番に手を付けていきます。 I […] 続きを読む
ASR命令とLSR命令 公開日:2021年6月12日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回はシフト命令を実装していきます。 ASR命令もLSR命令も右シフト命令です。 左シフト命令としてはLSL命令というのがあるんですけど、実際には同じ汎用レジスタ同士のADD命令ですので、実装が […] 続きを読む
OR命令とORI命令の実装 公開日:2021年6月6日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 前回のビット単位のAND演算に続いて、今回はビット単位のOR演算を実装します。 OR命令の実装 まずはOR命令からです。 ビット単位のORについてはとくに説明は必要ないと思います。 それではいつ […] 続きを読む
AND命令とANDI命令の実装 公開日:2021年6月5日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回は前回に引き続きビット単位の演算の一種であるAND命令とANDI命令を実装します。 AND命令の実装 まずはAND命令からです。 ビット単位のANDについてはとくに説明は必要ないと思います。 […] 続きを読む
EOR命令の実装 公開日:2021年5月30日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回から算術論理演算に関する命令を実装していきます。 まずはビット単位の排他的論理和を行うEOR命令からです。 EOR命令の実装 EOR命令はレジスタどうしでビット単位の排他的論理和を求めます。 […] 続きを読む