Intel_8080
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "Intel 8080" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2021年5月)

Intel 8080
生産時期1974年4月から1990年まで
販売者Intel
設計者Intel
生産者Intel
CPU周波数2 MHz から 3.125 MHz
命令セット8080
コア数1
パッケージ40Pin DIP
前世代プロセッサIntel 8008
次世代プロセッサIntel 8085
トランジスタ6000
テンプレートを表示

Intel 8080(インテル 8080、i8080)は、インテルによって開発された8ビットマイクロプロセッサである。1973年末に8080のエンジニアリングサンプルが出荷され[1]1974年2月にアメリカ合衆国フィラデルフィアにて開催された国際固体素子回路会議(英語版) (ISSCC) で発表された[2]

同社の8008の後継に当たるが、命令の互換性はない。8080の命令は後に拡張され、ザイログZ80日立製作所64180に継承された。初期のパーソナルコンピュータの多くに採用され、モトローラ6800モステクノロジー6502Appleコモドールファミコン、他)と覇を競った。
歴史

8008はシングルアドレッシングモードや遅いクロック速度、少ないピン数、スタック不足などによりソフトウェアの規模や複雑さが制限され、用途が限定的であった。8008に次ぐ新しいマイクロプロセッサの設計にあたっては、単純に8008にスタック命令を追加したものから完全に互換性を放棄したものまでいくつか提案されたが、最終的には両者の妥協案が採択された[3]

1972年初頭、8080のアーキテクチャの考案者であるフェデリコ・ファジンはインテルの経営陣にこのチップを提案し、実行することを推進した。これは半年後にようやく開発の許可を得た。1972年11月、ファジンはかつて一緒に4004の設計を手伝っていた嶋正利を日本から雇った。嶋はファジンが4000ファミリ用に作ったシリコンゲートによるランダムロジックの設計手法を利用して、ファジンの指示の下で詳細設計を行った[4]

8080はより多くの顧客に向けた汎用のマイクロプロセッサになることを意識して設計された。開発の労力は主に8008の周辺チップにあった機能を一つのパッケージに統合することに費やされた。開発初期の段階で、8080は8008とはバイナリ互換ではなく、新しいソフトウェアが8008と同じ制限を受けないように、ソースコードの変換によって互換性を保つことが決定された。同じ理由で、スタックベースのルーチンと割り込みの機能を拡張するため、スタックは外部メモリに移された。

嶋は1973年8月にレイアウトを完成させた。NMOSの製造プロセスが確立した後、1974年1月頃に8080の試作品が完成した。嶋は休暇を取って一時的に日本へ帰国し、休暇明けに8080の特性評価を行う予定だった。しかし、嶋がインテルに戻った頃には既に営業部の判断で8080が4万個製造されていた。8080はグラウンドが十分に取られていないという物理設計上のミスにより、大電流が流れるTTLデバイスと使用するには問題があった。そのため、8080はTTL-LS用としてしばらくの間販売され、グラウンド線の幅を太くして標準TTLに対応させたものが8080Aとして発売された[5]

日本で1974年4月頃に発売された8080のサンプル価格は1個138,000円(2023年時点の306,796円と同等)で、これは当時の日本の全世帯1か月家計消費支出平均額をやや上回る額に相当した[6]。この価格は歩留まりの改善や他のメーカーから互換品が登場したことで下がっていった。1975年末には周辺回路として必要な電子部品を揃えたキット「MCS-80 システムC」(約63,000円)や、基板やモニタプログラムまで一式で揃えた組立キット「SDK-80(英語版)」(約13万円)が発売された[7]
レジスタセット

8080は、アキュムレータ1つを含む、7つの汎用レジスタ(8ビット)を持つ。これはたとえば6800と比べて本数としては多い。また、二つの8ビットレジスタを併せて、BC、DE、HLの3つの16ビットレジスタとして扱う命令もある。

16ビット単位の呼称8ビット単位(上位)8ビット単位(下位)説明
PSWAFlagアキュムレータ(A)とフラグ・レジスタ
BCBC汎用レジスタ
DEDE汎用レジスタ
HLHL汎用兼 間接参照用レジスタ
PCプログラムカウンタ
SPスタックポインタ

(注)命令中ではHLレジスタペアをポインタとして扱うメモリ参照は「M」と表現される: 例 ADD Mフラグレジスタのビット位置b7:S 符号b6:Z ゼロb5:未使用 (0に固定)b4:H AUXキャリー(パックBCD演算用)b3:未使用 (0に固定)b2:P パリティb1:未使用 (0に固定)b0:C キャリーこのフラグ位置は8086を経てIA-32に至るまで代々引き継がれている。
命令セット

命令は
バイト単位で、1から3バイトの可変長である。

主な命令は、8ビットレジスタ間のロード、8ビットおよび16ビットレジスタペアに対する即値ロード命令、Aレジスタを用いた加減算とビット論理演算・比較演算(HLレジスタペアをポインタとして扱うメモリ参照を含む)、絶対番地指定による条件および無条件ジャンプ・コール命令・リターン命令、スタックへのPUSH/POP操作、割り込み許可・禁止命令、8レベルの割り込みをエミュレートするソフトウェア割り込み命令などがある。

相対ジャンプ及び相対コール命令がないため命令を動的に再配置することは原則としてできなかった。

リセット直後は(プログラム・カウンタが)0番地からアドレスが増加する方向に実行される。また、スタックポインタはアドレスが減少する方向に(プッシュにより)自動的に減算されるため、スタックはメモリ下位(数字の大きい方が上)番地に向かって伸びる。

以下に命令一覧を示す。

rは8ビットレジスタA,B,C,D,E,H,LまたはM(HLレジスタで示されるメモリ)を表す。ザイログニーモニックではMは(HL)と書く。

rrは16ビットレジスタBC,DE,HL,SPを表す。なおインテルニーモニックではBC,DE,HLはB,D,Hと書く。

nは8ビットの数値(即値またはI/Oアドレス)を表す。

nnは16ビットの数値(即値またはメモリアドレス)を表す。

インテルニーモニックとザイログニーモニックが異なるものは、スラッシュで区切って示した。

転送・交換命令
MOV r,r / LD r,r
8ビットレジスタ間の転送。MOV M,Mは存在しない(相当するコードはHLT/HALTに割り当てられている)。
MVI r,n / LD r,n
8ビットレジスタに即値をロードする。
LXI rr,nn / LD rr,nn
16ビットレジスタに即値をロードする。
LDA nn / LD a,(nn)
メモリの内容をAレジスタにロードする。
STA nn / LD (nn),A
Aレジスタの内容をメモリにストアする。
LHLD nn / LD HL,(nn)
メモリの内容をHLレジスタにロードする。
SHLD nn / LD (nn),HL
HLレジスタの内容をメモリにストアする。
LDAX B / LD A,(BC)
BCレジスタで示されるメモリの内容をAレジスタにロードする。HLレジスタのMOV A,Mに相当。
LDAX D / LD A,(DE)
DEレジスタで示されるメモリの内容をAレジスタにロードする。
STAX B / LD (BC),A
Aレジスタの内容をBCレジスタで示されるメモリにストアする。HLレジスタのMOV M,Aに相当。
STAX D / LD (DE),A
Aレジスタの内容をDEレジスタで示されるメモリにストアする。HLレジスタのMOV M,Aに相当。
SPHL / LD SP,HL
HLレジスタの内容をSPレジスタに転送する。
XCHG / EX DE,HL
DEレジスタとHLレジスタの内容を交換する。
算術演算命令
ADD r / ADD A,r
8ビットレジスタの内容をAレジスタに加算する。
ADI n / ADD A,n
即値をAレジスタに加算する。
ADC r / ADC A,r
8ビットレジスタの内容とCフラグをAレジスタに加算する。
ACI n / ADC A,n
即値とCフラグをAレジスタに加算する。
SUB r
8ビットレジスタの内容をAレジスタから減算する。8ビット加減算命令のうちSUBのみはザイログニーモニックでもデスティネーションのAを表記しない。これはZ80に16ビットのSUB命令がなく(ADD,ADC,SBC命令はある)、対象がAレジスタであることが自明なためである。
SUI n / SUB n
即値をAレジスタから減算する。
SBB r / SBC A,r
8ビットレジスタの内容とCフラグ(ボロー)をAレジスタから減算する。
SBI n / SBC A,n
即値とCフラグ(ボロー)をAレジスタから減算する。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:37 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef