MC68000
これは開発当時としては非常に広大なメモリ空間だった。これに対し8086は従来の8080との間でソフトウェアのアセンブリ言語レベル(注: バイナリレベルではない)での互換性のため、従来と同じ16ビットのアドレッシングを「オフセット」とし、「セグメント」と称する(詳細はセグメント方式#x86を参照)16ビットレジスタの値を4ビットシフトしてベースアドレスとする、20ビット空間のノンリニアアドレッシングだった。そのため、64Kバイトを超えるデータやコードを扱うにはセグメントレジスタの値を適宜変更する必要があり、面倒であった。32ビットアドレッシングは、x86では1986年の80386で初めて可能になった。
このような事情から68000は8086と比較して学習が容易で使いやすく、開発者に好まれた。
オリジナルのMC68000は、3.5μmルールのHMOSプロセスで製造された。技術サンプルは1979年末に出荷された。量産チップは1980年に出荷され、当初のクロック周波数は4, 6, 8MHzだった。10MHz版は1981年、12.5MHz版が1982年に登場している。HMOSでは最高速の16.67MHz版 (12F) は1980年代終盤まで生産されなかった。
メモリ量の少ないシステム向けの低価格版として1982年に MC68008 が登場した。これは MC68000 の8ビットデータバス版であり、アドレスバスも当初は24ビットよりも縮小され、48ピンDIP版は20ビット。後の52ピンPLCCパッケージ版では22ビットである。MC68012 は後に31ビットアドレスバスで登場した。
マルチプロセッサ制御:TAS(テストアンドセット、1命令でビットテストのためのリードとその結果のライトの2つのメモリアクセスを割り込みなどで中断されない不可分なバスサイクルで行うことによりメモリ共有型マルチプロセッサでのセマフォを実現)
フロー制御:JMP(ジャンプ), JSR(サブルーチンコール), BSR(相対アドレスでのサブルーチンコール), RTS(サブルーチンからの復帰), RTE(例外や割り込みからの復帰), TRAP(ソフトウェア割り込みに似たソフトウェア例外を発生), CHK(条件付きソフトウェア割り込み)
分岐:Bcc("cc"は分岐条件として16種類のステータスレジスタのチェック方法を記述:equal(等しい), greater than(大きい), less-than(小さい), carry, これらの組み合わせや論理否定)
デクリメント付き分岐:DBcc("cc"は分岐命令と同じ意味)指定したデータレジスタをデクリメントした後、指定された条件が真で、デクリメント結果が-1でないなら分岐する。0ではなく-1でチェックするのは、ループを記述する場合にコードを単純化するためである。ループカウンタとして最初から0が指定された場合、デクリメントされて-1になるので分岐しない。したがって0かどうかをループに入る前にチェックする必要がない。