MC68HC11は、MC6800が発表された10年後の1984年に発表されたMC6800の発展型のマイクロプロセッサです。1979年に、MC6800の改良版の6801/6803が発表されていますが、MC68HC11はそれらに対策された改良方針をさらに進めたものになっています。

6800の直系の発展形

MC68HC11のペリフェラルを除くマイクロプロセッサのコア部分は、モトローラの最初の8ビットマイクロプロセッサMC6800の様々な不足点を補完した完成形といえるのではないでしょうか。私の勝手な思いでは、MC68HC11の構成はこれが本来あるべきMC6800の姿だよね。。。というものです。

MC6800の発展型のマイクロプロセッサとしてはMC6809が有名ですが、MC6809はMC6800とバイナリ―コードに互換性がないことや、アドレッシングモードが根本的に改変されているので、8ビットという点は共通ですが、MC6800とはまったく別のプロセッサととらえるべきだと考えます。

MC68HC11と、同様にMC6800の後継プロセッサとしての位置づけを持つMC6809との最も大きな違いは、MC6800やMC6801/6803のバイナリコードと上位互換性があり、MC68HC11でMC6800のバイナリコードをそのまま動かすことができることです。

6800の原型と発展形が楽しめるマイクロプロセッサ

この様な観点では、MC6800系のマイクロプロセッサのプログラミングを楽しみたい方は、MC6800そのものではなくMC68HC11のシステムを入手してプログラミングなどを楽しむのがよいかもしれません。そうすれば、最初は、MC6800の命令だけを受け付けるアセンブラを利用して、機能が限定されたマイクロプロセッサ創成期のMC6800のプログラミングを楽しみ、その後、MC68HC11のアセンブラを利用して様々な知見を取り込み改良されたMC68HC11のプログラミングを楽しむことができます。

MC68HC11の改良点

MC6801/MC6803で実施されている改良項目も多いのですが、MC6800を比較対象としてMC68HC11の改良点の概要を以下に示します。不満がないとは言いませんが、MC6800を使用する上で大きな障害になっていた点が、ほぼ解消されています。

  • インデックスレジスタが1本追加され、IX, IYとなった。
  • レジスタのスタックへの退避・回復機能が強化された。
  • A,Bレジスタを連結した16ビットによるデータの読み書きや演算ができるようになった。
  • レジスタ間の演算機能が強化された。
  • レジスタ間のデータ移動機能が強化された。
  • 乗除算の命令が追加された。
  • パラレル入出力、シリアル通信、タイマ、AD変換などの基本的なペリフェラルや、ROM,RAM,EEPROM(構成による)などのメモリなどが組み込まれており、組込みシステム用のMCUとしての基本機能を保持している。

ハードウェア的には、MC6800-MC6809までNMOSで熱かったのが、CMOSでクールになった(消費電力が削減された)点も見逃せませんね。