「NEC V30」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
| (同じ利用者による、間の7版が非表示) | |||
| 1行目: | 1行目: | ||
NEC | '''NEC V30'''とは、1984年にNECから発売した「[[Intel 8086]]とピン互換(同じソケット形状)」で、かつ「[[Intel 80186]]と命令セットに互換性」があり、かつ「独自命令」を搭載した[[CPU]]です。 | ||
大雑把にいうと「8086向けの部材を流用して80186互換機を作れる」というものでした。 | 大雑把にいうと「8086向けの部材を流用して80186互換機を作れる」というものでした。 | ||
後に80186相当から80286相当にパワーアップした「[[NEC V33]]」が登場して割と人気になりました。 | |||
または8086互換ではなく8088互換の「[[NEC V20]]」という下位製品もありました。 | |||
== 追加命令セット == | == 追加命令セット == | ||
V30には[[Intel 80186]]にはない命令セットが追加されています。 | |||
これらをIntel 80186で動かした場合は「無視される」という挙動になります。 | |||
一方で後に[[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の比較 | ||
| 47行目: | 48行目: | ||
* RETEM: 8080エミュレーションモードから戻る | * RETEM: 8080エミュレーションモードから戻る | ||
一斉を風靡した[[Intel 8080|8080]](の互換品の[[Z80]])としても使える優れモノです。 | |||
[[category: | [[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エミュレーションモードから戻る