「NEC V30」の版間の差分

提供:MonoBook
 
(同じ利用者による、間の10版が非表示)
1行目: 1行目:
NEC V20とは、1984年にNECから発売した「Intel 8086とピン互換(同じソケット形状)」、かつ「Intel 80186と命令セットに互換性」、かつ「独自命令」を搭載したCPUです。
'''NEC V30'''とは、1984年にNECから発売した「[[Intel 8086]]とピン互換(同じソケット形状)」で、かつ「[[Intel 80186]]と命令セットに互換性」があり、かつ「独自命令」を搭載した[[CPU]]です。


大雑把にいうと「8086向けの部材を流用して80186互換機を作れる」というものでした。
大雑把にいうと「8086向けの部材を流用して80186互換機を作れる」というものでした。


後に186相当から286相当にパワーアップした「[[NEC V33]]」が登場して割と人気になりました。
後に80186相当から80286相当にパワーアップした「[[NEC V33]]」が登場して割と人気になりました。
または8086互換ではなく8088互換の「[[NEC V20]]」という下位製品もありました。


== 追加命令セット ==
== 追加命令セット ==
V30には186にはない命令セットが追加されています。
V30には[[Intel 80186]]にはない命令セットが追加されています。
これらを186で動かした場合は「無視される」という挙動になります。
これらをIntel 80186で動かした場合は「無視される」という挙動になります。
一方で後に386で追加された命令セットと一部被っているものがあり、V30向けのプログラムを386で動かすと暴走するという残念な結果になりました。
一方で後に[[Intel 80386]]で追加された命令セットと一部被っているものがあり、V30向けの[[プログラム]]を[[Intel 80386]]で動かすと暴走するという残念な結果になりました。


=== ビット操作 ===
=== ビット操作 ===
これらと同じような命令はインテル純正では[[Pentium 3]]でやっと登場しました。いくらなんでも先走りすぎですね。
これらと同じような命令はインテル純正では[[Pentium 3]](1999年)でやっと登場しました。いくらなんでも先走りすぎですね。
* TEST1: 特定のビットをテスト
* TEST1: 特定のビットをテスト
* SET1: 特定のビットをセット(1にする)
* SET1: 特定のビットをセット(1にする)
19行目: 20行目:
=== パックドBCD演算命令 ===
=== パックドBCD演算命令 ===
これらの命令はメモリに格納された大きな[[パックドBCD]]形式の数値の演算を可能にします。
これらの命令はメモリに格納された大きな[[パックドBCD]]形式の数値の演算を可能にします。
* ADD4S: パックドBCDの加算
* [[ADD4S]]: パックドBCDの加算
* SUB4S: パックドBCDの減算
* SUB4S: パックドBCDの減算
* CMP4S: パックドBCDの比較
* CMP4S: パックドBCDの比較
28行目: 29行目:
* ROR4: 4ビットニブルの右ローテート
* ROR4: 4ビットニブルの右ローテート


=== その他の追加命令 ===
=== リピート命令 ===
* REPC: 文字列操作の繰り返し(ZF=1の間)
CYキャリーフラグが変化するか、またはCWレジスタの数値がゼロになるまでループする命令です。
* REPNC: 文字列操作の繰り返し(ZF=0の間)
主に文字列操作(文字列比較など)を高速に行うのに使われるものです。
* REPC: CY=0 または CW=0
* REPNC: CY=1 または CW=0


=== Intel 80286由来の命令 ===
=== Intel 80286由来の命令 ===
45行目: 48行目:
* RETEM: 8080エミュレーションモードから戻る
* RETEM: 8080エミュレーションモードから戻る


一斉を風靡した8080(の互換品の[[Z80]])としても使える優れモノです。
一斉を風靡した[[Intel 8080|8080]](の互換品の[[Z80]])としても使える優れモノです。


[[category: CPU]]
[[category: NEC V30]]

2025年9月18日 (木) 04:07時点における最新版

NEC V30とは、1984年にNECから発売した「Intel 8086とピン互換(同じソケット形状)」で、かつ「Intel 80186と命令セットに互換性」があり、かつ「独自命令」を搭載したCPUです。

大雑把にいうと「8086向けの部材を流用して80186互換機を作れる」というものでした。

後に80186相当から80286相当にパワーアップした「NEC V33」が登場して割と人気になりました。 または8086互換ではなく8088互換の「NEC V20」という下位製品もありました。

追加命令セット[編集 | ソースを編集]

V30にはIntel 80186にはない命令セットが追加されています。 これらをIntel 80186で動かした場合は「無視される」という挙動になります。 一方で後にIntel 80386で追加された命令セットと一部被っているものがあり、V30向けのプログラムIntel 80386で動かすと暴走するという残念な結果になりました。

ビット操作[編集 | ソースを編集]

これらと同じような命令はインテル純正ではPentium 3(1999年)でやっと登場しました。いくらなんでも先走りすぎですね。

  • TEST1: 特定のビットをテスト
  • SET1: 特定のビットをセット(1にする)
  • CLR1: 特定のビットをクリア(0にする)
  • NOT1: 特定のビットを反転

パックドBCD演算命令[編集 | ソースを編集]

これらの命令はメモリに格納された大きなパックドBCD形式の数値の演算を可能にします。

  • ADD4S: パックドBCDの加算
  • SUB4S: パックドBCDの減算
  • CMP4S: パックドBCDの比較

ニブル操作命令[編集 | ソースを編集]

4ビット(ニブル)単位でデータを操作する命令です。

  • ROL4: 4ビットニブルの左ローテート
  • ROR4: 4ビットニブルの右ローテート

リピート命令[編集 | ソースを編集]

CYキャリーフラグが変化するか、またはCWレジスタの数値がゼロになるまでループする命令です。 主に文字列操作(文字列比較など)を高速に行うのに使われるものです。

  • REPC: CY=0 または CW=0
  • REPNC: CY=1 または CW=0

Intel 80286由来の命令[編集 | ソースを編集]

V30はIntel 80286で導入されたいくつかの命令も実装しています:

  • BOUND: 配列境界チェック
  • ENTER: プロシージャ入口の作成
  • LEAVE: プロシージャ出口の作成
  • INS: 入力文字列
  • OUTS: 出力文字列

8080エミュレーションモード[編集 | ソースを編集]

V30には8080エミュレーションモードがあり、以下の命令でモードの切り替えを行います:

  • BRKEM: 8080エミュレーションモードに入る
  • RETEM: 8080エミュレーションモードから戻る

一斉を風靡した8080(の互換品のZ80)としても使える優れモノです。