メーカーごとに特徴がありますが、個人的に好き/嫌いも当然あります ;-)
個人的にプログラミング時に注意する点についてちょっとだけまとめてみました(表1)。
こう見るとM38000というかMELPS740命令系だけがちょっと異色なような感じがしますが、
そう違和感を感じることもありません。
MELPS740は命令セットが他に比べて少ないのも特徴ですが、奥が深く命令によっては
甚く感動することもあります。汎用レジスタがたくさんあるアーキテクチャも便利ですが
多いがゆえに比較単調な命令を数コード書かなくてはならいのは職人気質を
穏やかにさせてしまうでしょう。
こうした汎用レジスタを数多く持つものはメーカーサイドのマイコン設計時の
思惑が強く現れていると思っています。裸のアセンブラで開発する技術者は少なくなって
おり、高級言語での開発をみらむと必然的にこうったアーキテクチャになるのは否めません。
もっとCICSっぽくしてもいいんじゃないのって思います(笑)
TCLS-870やH8/300などはこの典型でしょう。また、CISC色が濃い職人好み(?)の
マイコンはFFMC-8LやM38000でしょう。8LやM38000のコーディング中に
直感的には分かり難いがスマートなアドレッシングに感動するすることはあっても、
H8コーディング中ではなかなか味わうことができません。
両者の中間的な位置に NEC 78K/0シリーズがあるように感じています。
個人的には好きなのは 8L かなぁ。昔のコマンドラインのシミュレーターなんかは
僕の先生でした。今やシミュレータはメーカー純正やサードパーティからいくつも
出されていますが、そのほとんどはGUIベースです。GUIが悪いわけではないのですが、
旧来のコマンドラインの性能/使い勝手を超えないのであれば、GUIであろうがなかろうが
価値は上がりません。
メーカー | NEC | 富士通 | ルネサス(日立) | ルネサス(三菱) | 東芝 |
シリーズ等 | 78K/0 | FFMC-8L | H8/300H | M38000 | TLCS-870 |
Endian | Little | Big | Big | Little | Little |
転送命令 | dst←src | dst←src | src→dst | src→dst | dst←src |
キャリーフラグ | 加減算命令実行時のオーバフローやアンダフローを記憶するフラグです。 また,ローテート命令実行時はシフト・アウトされた値を記憶して, ビット演算命令実行時には,ビット・アキュームレータとして機能します。 | 演算の結果,バイト時にはビット7(ワード時にはビット15)から繰上げや 借越しが発生した場合にセット,それ以外はクリアします。 また,シフト命令ではシフトアウトした値になります。 | 演算の実行により、キャリが生じたとき1にセットされ、 生じなかったときには0にクリアされます。 |
結果が0 以上のとき、1 になります。それ以外のと
きは0 になり、ボローを示します。 【!!要注意!!】 |
キャリー情報がセットされます。 ・加算: MSBからキャリー(桁上げ)がセットされます。 ・減算: MSBへのボロー(桁借り)がセットされます。 ・除算: 除数が00hのときまたは商が100h以上のとき"1"がセットされます。それ以外のときは"0"がセットされます。 |
例. 10以上でブランチ |
|
|
|
|
|
例. 10未満でブランチ |
|
|
|
|
|
ワンチップマイコン関係のリンク
by masu
e-mail: massun.masumoto@nifty.ne.jp
URL : http://member.nifty.ne.jp/~masumoto/