Privacy Policy Cookie Policy Terms and Conditions Intel 8080 - Wikipedia

Intel 8080

出典: フリー百科事典『ウィキペディア(Wikipedia)』

Intel 8080(インテル 8080、i8080)は、アメリカ半導体製造会社、インテルによって開発された8ビットの8008の改良版マイクロプロセッサ (CPU) である。1974年4月に発表され、初期のコンピュータの多くに採用された。一般にはこれが最初の「使える」マイクロプロセッサであると言われている。後にザイログ社によって開発され、より普及したZ80は、この8080が基になっており、ソフトウェアの互換性を持つ。

インテルのマイクロプロセッサは、4004から8008を経て、この8080で一応の完成を見た。8080は、アキュムレータ1つを含め、7つの汎用レジスタ(8ビット)を持つが、当時としてはこの数は多いと言える。

同時期に登場したモトローラ社の6800と覇を競ったが、勝者は8080上位互換のZ80であった。

NEC製のセカンドソース品 (μPD8080A) は減算時における10進補正フラグの扱いがオリジナルとは違っており、ここを全く同じにしたもの (μPD8080AF) が追加販売されている。TK-80には前者が、TK-80Eには後者が採用された。

i8080のロジカル設計の中心となったのはビジコン退社後、リコーを経てインテルに入社した嶋正利だった。開発者の特権として彼はパターン余白に嶋家の家紋を刻んだ。

目次

[編集] レジスタセット

16ビット単位の呼称 8ビット単位(上位) 8ビット単位(下位) 説明
PSW A Flag アキュムレータ(A)とフラグ・レジスタ
BC B C 汎用レジスタ
DE D E 汎用レジスタ
HL H L 汎用兼 間接参照用レジスタ
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に至るまで代々引き継がれている。)

注記: TK-80のCPUは極初期にでまわった製品にはμPD8080Aが、それ以降には~AFが使われた。(PROMも初期モデルと中後期モデルとでは異なる)

[編集] 命令セット

  • 命令はバイト単位で、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は存在しない。
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レジスタから減算する。
CMP r / CP r
8ビットレジスタの内容をAレジスタから減算するが、結果は格納しない。
CPI n / CP n
即値をAレジスタから減算するが、結果は格納しない。
INR r / INC r
8ビットレジスタの内容をインクリメントする。
DCR r / DEC r
8ビットレジスタの内容をデクリメントする。
INX rr / INC rr
16ビットレジスタの内容をインクリメントする。
DCX rr / DEC rr
16ビットレジスタの内容をデクリメントする。
DAD rr / ADD HL,rr
16ビットレジスタの内容をHLレジスタに加算する。
DAA
Aレジスタの内容をBCD補正する。

[編集] 論理演算命令

ANA r / AND r
8ビットレジスタの内容とAレジスタの論理積をとる。
ANI n / AND n
即値とAレジスタの論理積をとる。
ORA r / OR r
8ビットレジスタの内容とAレジスタの論理和をとる。
ORI n / OR n
即値とAレジスタの論理和をとる。
XRA r / XOR r
8ビットレジスタの内容とAレジスタの排他的論理和をとる。
XRI n / XOR n
即値とAレジスタの排他的論理和をとる。
CMA / CPL
Aレジスタの内容を反転する。

[編集] ローテート命令

RLC / RLCA
Aレジスタの内容とCフラグを連結して左ローテートする。
RRC / RRCA
Aレジスタの内容とCフラグを連結して右ローテートする。
RAL / RLA
Aレジスタの内容を左ローテートする。
RAR / RRA
Aレジスタの内容を右ローテートする。

[編集] ジャンプ・コール・リターン命令

JMP nn / JP nn
指定の番地にジャンプする。
JNZ nn / JP NZ,nn
Zフラグが0のとき指定の番地にジャンプする。
JZ nn / JP Z,nn
Zフラグが1のとき指定の番地にジャンプする。
JNC nn / JP NC,nn
Cフラグが0のとき指定の番地にジャンプする。
JC nn / JP C,nn
Cフラグが1のとき指定の番地にジャンプする。
JPO nn / JP PO,nn
Pフラグが0のとき指定の番地にジャンプする。
JPE nn / JP PE,nn
Pフラグが1のとき指定の番地にジャンプする。
JP nn / JP P,nn
Sフラグが0のとき指定の番地にジャンプする。
JM nn / JP M,nn
Sフラグが1のとき指定の番地にジャンプする。
PCHL / JP (HL)
HLの内容をPCに転送する。
CALL nn
指定の番地をコールする。
CNZ nn / CALL NZ,nn
Zフラグが0のとき指定の番地をコールする。
CZ nn / CALL Z,nn
Zフラグが1のとき指定の番地をコールする。
CNC nn / CALL NC,nn
Cフラグが0のとき指定の番地をコールする。
CC nn / CALL C,nn
Cフラグが1のとき指定の番地をコールする。
CPO nn / CALL PO,nn
Pフラグが0のとき指定の番地をコールする。
CPE nn / CALL PE,nn
Pフラグが1のとき指定の番地をコールする。
CP nn / CALL P,nn
Sフラグが0のとき指定の番地をコールする。
CM nn / CALL M,nn
Sフラグが1のとき指定の番地をコールする。
RST p / RST n
(p=0~7) p*8番地をコールする。割り込み用。
RET
リターンする。
RNZ / RET NZ
Zフラグが0のときリターンする。
RZ / RET Z
Zフラグが1のときリターンする。
RNC / RET NC
Cフラグが0のときリターンする。
RC / RET C
Cフラグが1のときリターンする。
RPO / RET PO
Pフラグが0のときリターンする。
RPE / RET PE
Pフラグが1のときリターンする。
RP / RET P
Sフラグが0のときリターンする。
RM / RET M
Sフラグが1のときリターンする。

[編集] スタック操作命令

PUSH rr
16ビットレジスタをプッシュする。SPは指定できない。
PUSH PSW / PUSH AF
PSWをプッシュする。
POP rr
16ビットレジスタをポップする。SPは指定できない。
POP PSW / POP AF
PSWをポップする。
XTHL / EX (SP),HL
HLレジスタとスタックトップの内容を交換する。

[編集] フラグ操作命令

STC / SCF
Cフラグを1にする。
CMC / CCF
Cフラグを0にする。

[編集] 入出力命令

IN n / IN A,(n)
I/OアドレスからAレジスタに入力する。
OUT n / OUT (n),A
Aレジスタの内容をI/Oアドレスに出力する。

[編集] CPU制御命令

NOP
何もしない。
HLT / HALT
CPUを停止し、割り込みを待つ。
DI
割り込みを禁止する。
EI
割り込みを許可する。

[編集] ソフトウェア

[編集] 関連項目


インテルのプロセッサ一覧

4004 | 4040 | 8008 | 8080 | 8085 | 8086 | 8088 | iAPX 432 | 80186 | 80188 | 80286 | 80386 | i486 | i860 | i960 | Pentium | Pentium Pro | Pentium II | Celeron | Pentium III | XScale | Pentium 4 | Pentium M | Pentium D | Pentium E | Pentium Extreme Edition | Xeon | Core | Core 2 | Itanium | Itanium 2   (x86プロセッサ以外は斜体です)

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu