5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

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

8086 vs. Z80 vs. 6809 vs. 6502

1 :ナイコンさん:2006/12/11(月) 10:41:05
以下のスレッドの拡張・発展版

【まだ】単品CPU Z80とか6809/6502 (【現役】
http://science4.2ch.net/test/read.cgi/denki/1150952925/

8086(8088)・Z80・6809・6502のうち、どのCPU(MPU)が優れているか議論するスレッドです

2 :ナイコンさん:2006/12/11(月) 10:58:42
前スレ

6809とZ80 part 2
http://bubble4.2ch.net/test/read.cgi/i4004/1093190685/l50

3 :ナイコンさん:2006/12/11(月) 14:04:48
8086は8ビット級か

4 :ナイコンさん:2006/12/11(月) 16:37:18
少なくとも8088は8ビット級と考えてもよさそうです(データバスが8ビット)

5 :ナイコンさん:2006/12/11(月) 17:59:22
68008はどうですか。
つーか採用されてるの見たことないけど。

6 :ナイコンさん:2006/12/11(月) 18:15:57
8088は反則だろー
これを入れたらどの8ビットCPUもかなわないぞ

7 :ナイコンさん:2006/12/11(月) 21:12:35
6309ネイティブなら勝てるかも。

8 :ナイコンさん:2006/12/11(月) 21:49:29
ガリウム砒素で作ったZ80ならあるいは、、、

9 :ナイコンさん:2006/12/11(月) 22:19:30
>>5
8ビット機の拡張カードによく採用されてたよ > 68008

FM11, BM-Level3, S1 etc...

10 :ナイコンさん:2006/12/12(火) 08:17:21
>>6
>>7
>>8
HD64180や6309ネイティブなら8086/8088と互角以上かもしれない
Z80Hも速度的には見劣りしないかも
PC Engineの6502(7.16MHz)もかなり速い

11 :ナイコンさん:2006/12/12(火) 11:32:50
一応お約束で
6809
に一票


12 :ナイコンさん:2006/12/12(火) 21:54:08
68008は、命令長が長い(10バイト命令とか無かったっけ?)から
8ビットバスじゃキツいよな。
当時はメモリも高価であまりたくさん積めないし、
32ビット数値を多用するようなアプリもあまり無かったから
折角の内部レジスタ32ビットのありがたみも薄かった。

惜しかったなぁ。
その当時からすでに大規模アプリの時代が訪れていたら
8086/88みたいな糞プロセッサは駆逐されていたのに。

13 :ナイコンさん:2006/12/13(水) 09:45:08
>>5
ジャンクの電源装置をバラしたら、68008が乗ってたぞ。

14 :ナイコンさん:2006/12/13(水) 09:46:38
>>6
V20→V25

V40

V53(8ビットバスモード)

っていうのもあるでよ。

15 :14:2006/12/13(水) 10:07:32
ごめん、V53には8080エミュレーションモードが無かった。

Vシリーズで8ビットバスで8080エミュレーションモードがあって、一番速いのは、V20HL(16MHz)かな。

16 :ナイコンさん:2006/12/13(水) 10:08:15
8088がアリなら、エミュレーションモードは必要ではないか。



17 :ナイコンさん:2006/12/13(水) 18:18:42
Z80最強!

じゃ終了な

18 :ナイコンさん:2006/12/14(木) 01:42:41
そんな涙目で叫ばれても・・・w

19 :ナイコンさん:2006/12/14(木) 09:32:51
見た目、レア度ならシャープが試作したガラスのZ80が最強かと

20 :ナイコンさん:2006/12/21(木) 19:57:51
※参考 BASICの速度の比較(実測値・単位sec)
8086/8088
PC-9801 13
FM-11 21
MYBRAIN3000 24
MB-16000 21
PASOPIA16 14
MULTI16 25
MZ-5500 13
IBM-PC 21
Z80
PC-8801 31
PC-8001MK2 27
X1 18
MZ-2200 11
PASOPIA7 16
MULTI8 20
SMC-777 30
FP-1100 40
6800/6809
FM-7 17
BM LEVEL3 40
JR-200 24
6502
FAMILY COMPUTER 10

LIST
FOR I=1 TO 5000:I=I+I-I:NEXT

21 :ナイコンさん:2006/12/21(木) 20:32:56
ファミコンが最速なのかよw

22 :ナイコンさん:2006/12/21(木) 22:49:28
>>20
LISTの単純さに激しく疑問。ベンチするなら(ry

23 :ナイコンさん:2006/12/21(木) 23:02:00
MZの圧勝だな






24 :ナイコンさん:2006/12/25(月) 11:20:00
やっぱり6502最強か・・・

25 :ナイコンさん:2006/12/25(月) 15:15:33
提灯ベンチ

26 :AppleU追加:2006/12/26(火) 21:40:41
※参考 BASICの速度の比較(実測値・単位sec)
8086/8088
 PC-9801      13
 FM-11       21
 MYBRAIN3000    24
 MB-16000     21
 PASOPIA16     14
 MULTI16      25
 MZ-5500      13
 IBM-PC      21
Z80
 PC-8801      31
 PC-8001MK2    27
 X1        18
 MZ-2200      11
 PASOPIA7     16
 MULTI8      20
 SMC-777      30
 FP-1100      40
 PHC-25      26
6800/6809
 FM-7       17
 BM LEVEL3     40
 JR-200      24
6502
 FAMILY COMPUTER 10
 APPLE2      20

LIST
FOR I=1 TO 5000:I=I+I-I:NEXT

27 :ナイコンさん:2006/12/26(火) 22:31:39
やっぱりファミコンに搭載された6502が一番世の中に出回ったんですかね?
65816もいれちゃおうか

28 :ナイコンさん:2006/12/26(火) 23:50:13
Z80だよ

29 :ナイコンさん:2006/12/27(水) 00:29:18
6502のファミリーベーシックってどうせ整数BASICだろ?
単純比較はできないはずなんだが。

30 :ナイコンさん:2006/12/27(水) 09:59:05
FP-1100のBASICってBCD演算してるんじゃなかった?
単純比較はできないはずなんだが。

31 :ナイコンさん:2006/12/27(水) 10:05:34
それ以前に
>I=I+I-I:
これ動くの?

32 :ナイコンさん:2006/12/27(水) 10:05:41


  じゃMZ圧勝ですね^^;



33 :ナイコンさん:2006/12/27(水) 10:16:36
MSX turboRのR800

34 :ナイコンさん:2006/12/27(水) 10:21:35
さすがシャープベーシック。
舞糞とは一味違うな。

35 :ナイコンさん:2006/12/27(水) 21:37:29
88MCは?
8MHzじゃなかったか?

36 :ナイコンさん:2006/12/27(水) 22:18:50
それでもMZの圧勝ですね^^;

37 :ナイコンさん:2006/12/28(木) 07:59:18
勝ち負けよりどの位なのか知りたいんだ
マンデルブローやスプライト補完ありペジエとか円周率1万桁とか素数5千個とか…
昔の雑誌に載ってたやつで比べたりも…

手元にはリストすらないからなぁ


38 :ナイコンさん:2006/12/28(木) 08:39:56
その前にMZの圧勝って言いなさいよ。

39 :ナイコンさん:2006/12/28(木) 09:28:00
>>31
動かない理由があるのか?

40 :ナイコンさん:2006/12/28(木) 15:06:09
動くよ。動かない理由はない。

i=1-1+i

と同じ


41 :ナイコンさん:2006/12/28(木) 15:09:07
おまえら歳いくつだよ

42 :ナイコンさん:2006/12/28(木) 16:25:22
古稀にはまだまだ

43 :ナイコンさん:2006/12/28(木) 17:42:12
まぁ、FOR 〜NEXT ループ内でカウンタ変数を直接操作しようとする構文には違和感があるな

44 :ナイコンさん:2006/12/28(木) 18:06:25
6809にあって6502にないもの ダイレクトページレジスタなど
6809にあってZ80にないもの 掛け算や相対サブCALLなど
6809にあって8086やPentium4にもないもの エクステンドインダイレクト?
  [[番地][番地+1]] つまりポインタのポインタみたいなもの?

プログラムカウンタ相対のデータ参照は、IA系にもAMD64(Intel64)で
やっと追加されたんだっけ? うろ覚えなので間違ってたらゴメン

手元のアスキー1980年10月号の6809特集の最後のほうに(p70)
「MC6809 それは無限の可能性を秘めたCPUである、といっても過言ではない」
と書いてある……

うーーむ、良くも悪しくも、意欲的なCPUだったとは思います


45 :ナイコンさん:2006/12/28(木) 18:24:07
>>44
6809 にあって、6502/Z80/8086/Pentium4 にないもの。

Bレジスタ。

ルーツがミニコンのせいか、たった2個だけど複数汎用レジスタと言う概念があった。

「プログラムカウンタ相対」については、86系はセグメントで対処すると言うアーキ
テクチャだからあるから偉いと言うものではないと思う。

> うーーむ、良くも悪しくも、意欲的なCPUだったとは思います

今でも、アセンブラ書くなら 6809 と 68010 がイイ !!

46 :ナイコンさん:2006/12/28(木) 19:26:47
レジスタ少ないくせに6809

47 :ナイコンさん:2006/12/28(木) 20:20:12
>6809にあって6502にないもの ダイレクトページレジスタなど

16ビットレジスタ(アキュムレータ・インデックス・スタック
ポインタ)

 このために 6502 で高水準言語を実用的な速度で動かすことは難
 しかった。でも、256 バイト以上のデータブロックを使わない
 と割り切ってしまえば、結構高速なプログラムが書けた。

>6809にあってZ80にないもの 掛け算や相対サブCALLなど

インデックスや PC 相対 での 16 ビットオフセット

 8ビットでは高水準言語で使いづらかった。結局毎回アドレス計算
 をする破目になったり...



48 :ナイコンさん:2006/12/28(木) 20:23:53
ブロック転送ないくせに6809

49 :ナイコンさん:2006/12/28(木) 21:20:01
>>47
> 16ビットレジスタ(アキュムレータ・インデックス・スタック
> ポインタ)

PC

>>48
命令セットであーだこーだ言い出すときりがないぞ。

50 :ナイコンさん:2006/12/28(木) 21:37:03
低クロックしかない6809
すでにお先真っ暗だった6809

51 :ナイコンさん:2006/12/28(木) 21:45:29
98スレに居たジジイそっくり

52 :ナイコンさん:2006/12/28(木) 23:19:22
なんかスレタイの並びが気になるな

Z80 vs 8080 vs 6800 vs 6502

ならしっくりくるけど

53 :ナイコンさん:2006/12/28(木) 23:22:44
電卓上がりの8x系 vs ミニコン下りのああんうんこもれちゃう!6x系

54 :ナイコンさん:2006/12/29(金) 05:12:57
8ビットの頃はレジスタ数の制限なんだろう、トリッキーな仕掛けがあるよな

それに比べてRISCなんて

55 :ナイコンさん:2006/12/29(金) 07:00:30
>>54
RISCも、おかしな方向に突っ走ってしまったね。
レジスタウィンドウとか、もうね、アホかと。


56 :ナイコンさん:2006/12/29(金) 09:17:29
>>54
> トリッキーな仕掛けがあるよな

レジスタ数の制限以外にも命令長の制限もきつかったからね。

1バイトに、命令とソース/ディスティネーションを詰め込むためには、
特定の命令には特定のレジスタと決め打ちするしかなかった。

57 :ナイコンさん:2006/12/29(金) 09:22:47
Z80がCB,DD,ED,FDで命令を拡張していたのは醜かった。

58 :ナイコンさん:2006/12/29(金) 11:11:05
いや別に酷くはないが

59 :ナイコンさん:2006/12/29(金) 14:37:52
感性の問題だろうけど、俺は酷いと思うね。

しかし、見た目の綺麗さより互換性を取った方が勝ち組みだったわけだ。

60 :ナイコンさん:2006/12/29(金) 14:55:01
6809の6800に対するソース互換よりも、
Z80の8080に対するバイナリ互換のほうが、
立ち上がりが早いよね。

61 :ナイコンさん:2006/12/29(金) 22:39:34
8086(8088)・Z80・6809・6502
に加えて8080,65816とアセンブラ(もしくはマシン語)でプログラムを組んだことがあるが、
8086(8088)>6809>65816>Z80>=6502>8080
って感じかな。

ちなみに覚えた順は8080,Z80,6502,6809,65816,8086(8088)。
組むのが楽しいのは6809だな。
パズルがぴったり完成するように、最後まで綺麗なコードがかけることが多いよ。
8080、Z80系だとどうしても、泥臭くなる部分が出ちゃうんだよね。
6502,65816の場合は最初から諦めるw

62 :ナイコンさん:2006/12/29(金) 22:41:42
どーでもいいよ







Z80最強伝説!

63 :ナイコンさん:2006/12/30(土) 13:17:41
割込み処理は裏レジスタ切り替えEXX使って凌ぐ

64 :ナイコンさん:2006/12/30(土) 15:47:46
最強伝説とかって怪しげな企画本、たいてい裏があるよね

>>61
65816て何?とか思てぐぐってみた。スーファミやApple][gsの石だったのか。
DBRダイレクトバンクレジスタとやらの8bit追加で拡張とか。
同じ16Mバイト空間でも、セグメント式の286と違って、
バンク切り替えでこなす発想が興味深い。

つーかそんなにたくさんいろんな機械語使えて尊敬する。俺にはムリ。
DPRとかDBRとか紛らわしい仕組みが多くて頭混乱しそう。
第二外国語どころか英語の単位も落としかけてた時、五ヶ国語話せる
特定国からの留学生とか研究室で出会ったような気分。


65 :ナイコンさん:2006/12/30(土) 16:14:36
>>64
アセンブラなんて1種類完全にマスターすれば何にでも応用可能だよ。
外国語というより方言だな。だから多種のアセンブラが出来ても尊敬に値しない。
私も6800でデビューしてマニュアルさえ見れば何でもOKだよ。
アセンブラ使いにとっては多種のアセンブラが出来るのは常識で自慢にもならない。

66 :ナイコンさん:2006/12/30(土) 16:24:41
テキストコンバータで逝ける

67 :ナイコンさん:2006/12/30(土) 17:15:50
アセンブラはコンパイラが知ってれば良いのです!

68 :ナイコンさん:2006/12/30(土) 17:28:29
>>64
65の言うとおりだと思う。
けど、いきなりマニュアルだけ見て書くとヘンテコなコードになっちゃうな。
人の書いたコード見たり(コンパイラの吐いたコードも参考になるかも)、
自分でいろいろ書いたりと、ある程度慣れが必要。
難しいとかは全然ないけど。

> DPRとかDBRとか紛らわしい仕組みが多くて頭混乱しそう。
大抵はハードの仕様とかOSとかで、自ずと使い方が限られてくるから、
サンプルとか人の書いたコード読んだりすればすぐわかる。

>>66
たぶんいけるだろうけど、
Z80→6502→Z80とコンバータで変換すると、
日→英→日と翻訳ソフトで翻訳したような、笑えるコードになりそうな気がするw

69 :ナイコンさん:2006/12/30(土) 17:39:45
デスティネーション←ソースの記述方向とかインディアンの
リトル→ビッグとかは自動変換できるかもしれないけど
ロード時のゼロフラグ挙動とか、微妙なところが難しそう
脳内変換ではよく間違えるw


70 :ナイコンさん:2006/12/30(土) 18:47:15
>>64
にたような石なら、いいけど。

全然違う奴はそれなりに概念を覚えるのに苦労する。

ずっと 68系やってたから、8086 のセグメントは少し面食らった。

>>68 が言うように組めないわけじゃないけど、へんてこなコード書いたりするこ
とがある。

>>66
80 系のパリティなんかを使ってる奴をコンバートするのはちょっと難しいだろう。

て言うか、対応するレジスタがないとか、命令がないとかのケースも考えると、
最終的には VMWare ができるかもしれない。(w

71 :ナイコンさん:2006/12/30(土) 21:44:41
>>70
本題から外れるが・・・

VMwareは、一般の命令はエミュレーション実行せず、CPUに直に実行させる。
だから、CPUのベンチマークのプログラムは、VMware上でも速度低下が少しで済む。


72 :ナイコンさん:2006/12/30(土) 23:18:25
インディアン…
そりゃ確かにネイティブコードな香りがするな。

73 :ナイコンさん:2006/12/30(土) 23:21:34
>>64
確かに1種類しか知らないほうが少ないとは思うが...

たとえば 8080/Z80 とかは頓知が必要なので、すぐにはまともなコードが
書けない。68系から切り替えるとかなりストレスがたまる。逆に 8080 か
ら 6800 だとインデックスレジスタが1本しかないので頭を抱えることに
なる。6502 だとインデックスレジスタが 8bit だし、256 バイトを超える
ブロックを扱おうとして途方にくれると思う。

さらにアセンブラの違いも障害になる。たとえば MASM は世にも珍しい
型付アセンブラで、他から来ると理解するのに苦労するようだ。
実際、理解できずにトンズラしやがった奴もいたし...







74 :ナイコンさん:2006/12/30(土) 23:35:20
>>73
MASMというか、8086は、
あるアドレスにあるデータに即値を格納するとか加算する
といった場合に、
8ビットと16ビットの両方あるわけで、区別が必要だもの。

75 :ナイコンさん:2006/12/31(日) 00:08:35
いや、 8ビットと 16ビットの区別は大概のプロセサにあるよ。

しかし、たいていのアセンブラは、ニーモニックでデータ幅を指定するので、
たとえば 68k だと...

LabelB: ds.b 1
LabelW: ds.w 1
LabelL: ds.l 1

 move.b #0, LabelB
 move.b #0, LabelW
 move.b #0, LabelL

なんてことやっても、当然エラーにならないし同じ命令コードが生成される。

これに対して、MASM ではデータ定義の方でデータ幅が指定されるので、

LabelB: db ?
LabelW: dw ?
LabelD: dd ?

 mov LabelB, 0
 mov LabelW, 0
 mov LabelD, 0

で、異なるコードが生成される。

発想はわからなくはないけど、結局 mov [si], 0 なんてやられたらデータ幅が
わからんので mov word ptr [si], 0 とする必要があるなど、あまり便利とは思
えなかった記憶がある。

76 :ナイコンさん:2006/12/31(日) 00:16:46
テキスト書いててたのしい?

77 :ナイコンさん:2006/12/31(日) 00:22:18
BASICで書けばいいじゃん

78 :ナイコンさん:2006/12/31(日) 00:48:36
>>75
8080で命令分けすぎて不評。ZilogはLDにまとめて好評。
ってのがあったからかもね。
それにしてもやりすぎだと思うし、バグの元になったりして、不便極まり無かったと思う。

79 :ナイコンさん:2006/12/31(日) 00:50:00
Z80(コア)が一番売れたんだろ
最強じゃん!

80 :ナイコンさん:2006/12/31(日) 09:45:50
アセンブラは8080から入ったからデスト,ソースの順でないと違和感ありまくり
コンパイラな言語も代入先は左辺にくるから余計にそう思う

81 :ナイコンさん:2006/12/31(日) 10:09:36
MASMは糞仕様だったなぁ
LSI-C86のアセンブラは使いやすかった

82 :ナイコンさん:2006/12/31(日) 11:19:11
>>80
x86系でも、gasは左から右だよ。

83 :ナイコンさん:2006/12/31(日) 13:24:13
gasじゃなくてmasm互換を使ってるよ。
デストとソース書き間違えないように。

84 :ナイコンさん:2006/12/31(日) 17:37:30
>>80
自分でアセンブラ作れば?

それか、それこそ >>66 でいいと思うよ。

85 :ナイコンさん:2007/01/07(日) 13:34:08
Z80の勝ちー^^;

86 :64:2007/01/07(日) 19:18:57
生暖かい返信に触発されて、今さら6809の復習を始めてみたが、老いた脳には
きついっす。本当に20年前勉強したのかと思う位、見事に忘れている… orz

                 (i:signed u:unsigend)
Z80    8086     6809 直前のCMP Reg,Mem フラグ
JP PO jnp jpo    -      結果が奇数    (p=0)
JP PE jp jpe     -      結果が偶数    (p=1)
JP P  jns       BPL    結果が正     !N  bit7:0
JP M  js        BMI     結果が負     N  bit7:1
JP NZ jne jnz     BNE     iR != iM     !Z
JP Z  je jz      BEQ     iR == iM    Z
JP NC jnc jnb jae  BCC BHS uR >= uM   !C
JP C  jc jb jnae  BCS BLO uR <  uM    C
-     jbe jna    BLS     uR <= uM   C || Z
-     jnbe ja    BHI      uR >  uM   !C && !Z
-     jl jnge     BLT      iR <  iM    N ^ V
-     jnl jge     BGE     iR >= iM    !(N ^ V)
-     jnle jg     BGT     iR >  iM    !(N ^ V) && !Z
-     jle jng     BLE     iR <= iM    (N ^ V) || Z
-     jno       BVC     結果が範囲内  !V
-     jo        BVS     結果が範囲外  V

先発のZ80に複合条件の単独分岐がないのはやむを得ないとして
6809の文字S(SetやSame)と文字C(ClearやCarry)がややこしい
8086は符号なし(BelowとAbove)、符号あり(LowerとGreater)で
さすがに後発だけあって?整理されてると思った

もうだめw 疲れてすでに挫折気味 老兵はおとなしくC++に戻るべきなのか… orz


87 :86:2007/01/07(日) 20:13:25
(訂正:パリティは結果の偶奇じゃなく、立ちbit個数の偶奇だった)

勢いで6502の分岐命令も検索したみたけど、単独条件分岐の
BPL BMI BNE BEQ BCS BCC BVC BVS 八種だったので安心?した


88 :ナイコンさん:2007/01/07(日) 21:02:24
そうかい? その程度ではC++も難しいだろう?

89 :ナイコンさん:2007/01/07(日) 22:08:46
>>88 ごめんよ、あんまり素人ロートルをいじめないで
おとなしくC++「の勉強」に戻るって言い換えるから許してくれぃ

もとはといえばMMXの __asm { paddusb 〜 }がらみで
レトロ板見始めたのが間違いだったよ、ぶつぶつ…
(6800が複合条件込みで12種全部揃えて、最初から偉かったてのはよく判った)


90 :ナイコンさん:2007/01/07(日) 23:06:00
>>81
MASMはIntel純正アセンブラ(ASM86・・・CP/M-86のじゃねーぞっと)に
良く似せてあったな。オブジェクトファイルの形式もほぼ一緒らしくて、
リンカが両方受け付けてくれた覚えが・・

91 :ナイコンさん:2007/01/08(月) 00:22:26
>>86=87=89=64

モトローラ系CPUのBxxという分岐条件、
モトローラと決別したはずの日立(現ルネサス)の
H8/SHシリーズにもそのまま受け継がれている。
旧日立系ルネサスCPUを使う可能性があるなら
覚えていて損はないよ。

92 :ナイコンさん:2007/01/08(月) 19:38:44
逆に新しく分岐条件つくるのもたいへんよね。
表記を変えるだけならかんたんだけど。

93 :ナイコンさん:2007/01/09(火) 00:54:15
>>90
終期バージョンのMASMは検証したことがないが、
初期バージョンのMASMはストリング命令の記述が手抜きだた。
つーか、MASMだとsegmentディレクティブはそもそも洋梨に
したがったみたいだな。


94 :ナイコンさん:2007/01/09(火) 15:52:40
MASMは5.1しか使ったこと無い。
いまはnasm。
なぜかgasは使わないなぁ
アセンブラ自体滅多に使わないし。

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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)