2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

8086 vs. Z80 vs. 6809 vs. 6502 その15

519 :ナイコンさん :2021/10/21(木) 06:35:18.40 ID:0FlRR3xD0.net
Z8000は32bitの乗除算命令もあるようだね
ただし、符号付の乗除算命令しかないようだ

16bit × 16bit = 16bitや32bit × 32bit = 32bitの場合、乗算に関しては
16bit × 16bit = 32bitの下位16bitや32bit × 32bit = 64bitの下位32bit部分は
符号付、符号なしでも結果が同じになるので
C言語の実装では16bit乗算命令のMULTの結果の下位16bit
32bit乗算命令のMULTLの結果の下位32bitを使えばいいが
除算命令に関しては符号なしの場合、自分で実装しないといけない
z8kgccでも符号なし除算に関しては符号なし除算のサブルーチンを用意してる

また、Z8000のセグメントモードは64KB単位なので融通が利かない
おそらくセグメントモードでの利用はMMUのZ8010を使うことを前提として設計されたのだと思う
Z8010を使うとベースアドレスを256バイト単位でセグメントを配置できて
セグメント長も256バイト単位で設定できる
Z8010を使うことでセグメント単位でのアクセス保護も可能
セグメント単位のアドレスリマッピングやアクセス保護は286のプロテクトモードみたいだね
セグメント管理に使用されるセグメントディスクリプタレジスタはZ8010の中にある模様
Z8010一つに64エントリ分のレジスタがあって
8MBの全メモリ空間をサポートするには128エントリが必要なのでZ8010が2つ必要みたい

書籍の「Z80伝説」によればZ8000を使った最初のミニコンは
セグメントなしのZ8002を使いMMUはミニコンメーカーが独自に実装したらしい

総レス数 1001
309 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200