NS32016ボード(ソフトウェア編)
カテゴリー:
前回プログラムが動き始めたので、例によってUniversal Monitorの移植を行なっています。似ているプロセッサとしてMC68000をベースに、HEXファイル関係については長いアドレスに対応したH8/300Hが元にしています。
現時点でD(ump), G(o), S(et), L(oad), P(unch)の各コマンドが動作するようになっており、引き続きR(egister)の実装を進めているところです。
ということで気付いたことを書いてみようかと思います。
バイトオーダー
NS32000のバイトオーダーはリトルエンディアンなのですが、命令語に含まれる即値やディスプレースメントなどはビッグエンディアンで格納されます。
面白いのはディスプレースメント(絶対アドレッシングのアドレスも含む)は可変長で、最初のバイトの最上位ビットが"0"なら符号付7ビット、上位2ビットが"10"なら符号付14ビット、"11"なら符号付30ビットになることです。