EOR命令の実装 公開日:2021年5月30日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回から算術論理演算に関する命令を実装していきます。 まずはビット単位の排他的論理和を行うEOR命令からです。 EOR命令の実装 EOR命令はレジスタどうしでビット単位の排他的論理和を求めます。 […] 続きを読む
RETI命令の実装 公開日:2021年5月29日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回は割り込みから元の場所に戻るためのRETI命令を実装することにします。 割り込みについてはここでは詳しく解説しませんので、もし興味ある方がいらっしゃいましたらご自身で調べてくださいね。 RE […] 続きを読む
LPM命令の実装 公開日:2021年5月22日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回実装するLPM命令はかなり特殊な命令です。 慣れないとちょっと難解かもしれませんが、がんばって実装していきます。 AVRはハーバードアーキテクチャですので、プログラムはROMを読み書き可能な […] 続きを読む
SWAP命令の実装 更新日:2021年5月22日 公開日:2021年5月18日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 平日は簡単な命令をコツコツ片付けていくことにします。 今回実装するのはSWAP命令です。 SWAP命令の実装 SWAPというと2つの汎用レジスタの値を交換するんじゃないかと思われる方もいらっしゃ […] 続きを読む
IJMP命令とICALL命令の実装 公開日:2021年5月16日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回実装する命令はZレジスタでアドレスを指定する分岐命令です。 XレジスタやYレジスタではこういうことはできませんので、AVRではZレジスタはちょっと特別な存在ですね。 IJMP命令の実装 まず […] 続きを読む
整数型の大きさ 公開日:2021年5月15日 プログラミング こんにちは、めのんです! 前回に続いて、Cに関する話題を取り上げていきます。 思いつくままダラダラ書いていきますので、ちょっと読みにくいかもしれませんけど、どうかご容赦ください。 今回の話題は「整数型の大きさ」です。 「 […] 続きを読む
指示付きの初期化子 公開日:2021年5月10日 プログラミング こんにちは、めのんです! 今回からこれまでとは違ってCに関するいろんな話題を取り上げていきたいと考えています。 初心者向けの初歩的な話題もあれば、ベテランの方でも意外にご存じない話題までいろいと取り上げていきますので、ど […] 続きを読む
CALL命令、RCALL命令、RET命令の実装 公開日:2021年5月9日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回はサブルーチンの呼び出しに必要な3つの命令を実装します。 高級言語でいう関数、プロシージャ、メソッドといった機能はすべてサブルーチンが基礎になっています。 機械語のサブルーチンはすごくシンプ […] 続きを読む
PUSH命令とPOP命令の実装 公開日:2021年5月6日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! 今回はスタック操作のためのPUSH命令とPOP命令を実装します。 スタックは基本的なデータ構造でよく使われています。 CPUがハード的に実現しているスタックはすごく簡単で、RAM上の次にPUSH […] 続きを読む
LD(LDD)命令とST(STD)命令の実装 公開日:2021年5月4日 プログラミング命令セットシミュレータ開発 こんにちは、めのんです! ゴールデンウィークなのでちょっとペースがズレちゃいましたけど、また少しずつ進めていくことにします。 今回は前回の続きで、Yレジスタ版とZレジスタ版のLD命令とST命令、そしてLDD命令とSTD命 […] 続きを読む