富士通MB8861の追加命令 (1)NIM/OIM/XIM
富士通MB8861はMC6800上位互換のCPUであり、5種6命令が追加されている。
そのうちNIM/OIM/XIM/TMMは、メモリ上のデータをbit単位で(レジスタを介さずに)直接操作できる。制御用途で直接I/Oを叩くような場合に有効な命令だ。
ADXはIXレジスタに8bitの即値あるいはメモリ上の16bitデータを加算する。こちらは実に使い出がある。
| 命令 | code | byte | cyc | 機能概略 |
|---|---|---|---|---|
| NIM | 71 | 3 | 8 | BP ∩ (M) → M:ビットリセット |
| OIM | 72 | 3 | 8 | BP U (M) → M:ビットセット |
| XIM | 75 | 3 | 8 | BP ⊕ (M) → M |
| TMM | 7B | 3 | 7 | BP ∩ (M), BP ∩ (M) の結果と BP の EX-OR をとり 各々の結果に応じ CCR をセット |
| ADX(imm) | EC | 2 | 4 | IXL ← (IXL) +(命令の 2 バイト目) IXH ← (IXH) + C |
| ADX(ext) | FC | 3 | 7 | IXL ← (IXL) + (M + 1) IXH ← (IXH) + (M) + C |
TMM命令の機能概略が込み入ってるが、これは次回解説する。
なお、NIM/OIM/XIM/TMM命令はフラグの変化が通常とは異なる。
| 内容 | |
|---|---|
| NIMOIM | 演算結果が00ならばZビットをセットしNビットをリセットする。00でなければZビットをリセットしNビットをセットする。Vはリセットされる。 |
| XIM | 演算結果が00ならばZビットをセットしNビットをリセットする。00でなければZビットをリセットしNビットをセットする。 |
| TMM | (a) (Bp)=00ならばZビットをセットし、N、Vビットをリセットする。 |
| (b) Bpのマスクビット(セットビット)に対応するオペランドデータのビットがすべて0であればZビットをセットしN、Vビットをリセットする。 | |
| (c) Bpのマスクビットに対応するオペランドデータのビットがすべて1であればVビットをセットし、Z、Nビットをリセットする。 | |
| (d) (a)(b)(c)以外のときNビットをセットし、Z、Vビットをリセットする。 |
NIM/OIM/XIM命令
先にメモリデータ操作命令を見ておこう。
全て3バイト命令である。メモリ上では 命令コード・即値・オフセット の順に並ぶ。
命令コードは 71,72,75 である。命令サイクルは 8,8,8。
NIM/OIM/XIMは、IXアドレッシングで指定したメモリ上のデータと、即値を演算し、結果をメモリに書き込む。実行には8サイクルかかる。
フラグ変化は、結果が0ならZ=1,N=0、結果が0以外ならZ=0,N=1。Zだけセットすれば良さそうに思えるが、TMM命令との絡みでNも変化しているのだろう(推測)。
NIM/OIMではVフラグはリセットされるが、XIMでは変化しない。
MC6800の通常の論理演算命令(AND/ORA/EOR)ではVはリセットされていたので、XIM命令だけ挙動が違う。
これらの命令は C言語で *M &= 1; のような命令をコンパイルしたいときに使えそうである。Pascalの集合型(set)に使うのも良いかも。
HD6301のAIM/OIM/EIMとは命令コードが異なる
日立のHD6301はMC6801にさらに命令が追加されていて、MB8861のNIM/OIM/XIM相当の命令もある。
機能は同等だが、HD6301の方はダイレクトモードが追加されている。命令コードはダイレクトモードの方が71,72,75であり、インデックスモードは61,62,65である。微妙に違う。惜しい。
HD6301のTIMは MB6881のTMMとは動作がことなる。TIMはメモリ書き込みを行わないNIMになる(AND命令とBIT命令の関係に同じ)。命令コードは7B,6B。
ダイレクトモードが追加されたのは、組み込み向けではゼロページにI/Oを置きたいので、そこのテストを容易に行うためだろう。
資料
- MB8861に関する資料 – ずmemo
- Fujitsu : 技術情報誌 27(5)(148) – 国立国会図書館デジタルコレクション
- 富士通 MB8861 カタログ | Akibako koubou
- マイコンQ&A : ハードウエア&ソフトウエア – 国立国会図書館デジタルコレクション
- マイコン手づくり塾 : コンピュータテクニックを完全マスター – 国立国会図書館デジタルコレクション
- 月刊マイコン 1978年3月号 P.30 「ハードウェアに強くなるために FACOM MB8861(6800系)マイコンシステムの制作」
- エンサイクロペディア・アスキー volume 4 – 国立国会図書館デジタルコレクション







ディスカッション
コメント一覧
まだ、コメントがありません