2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

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

8086 vs. Z80 vs. 6809 vs. 6502 その12

1 :ナイコンさん:2016/07/16(土) 11:44:17.54 .net
8086(8088)・Z80・6809・6502のうち、どのCPU(MPU)が優れているか議論するスレッドです。
CPU(MPU)アーキテクチャや周辺デバイス制御など
基本的に「石」に関連する議論なら、ほぼ何でもアリです。

■過去スレ
8086 vs. Z80 vs. 6809 vs. 6502 その11 [無断転載禁止]©2ch.net
http://hanabi.2ch.net/test/read.cgi/i4004/1462424764/
8086 vs. Z80 vs. 6809 vs. 6502 その10
http://hanabi.2ch.net/test/read.cgi/i4004/1407651926/
8086 vs. Z80 vs. 6809 vs. 6502 その9 (再び)
http://hello.2ch.net/test/read.cgi/i4004/1365951318/
8086 vs. Z80 vs. 6809 vs. 6502 その9 (短命)
http://ikura.2ch.net/test/read.cgi/i4004/1362833400/
8086 vs. Z80 vs. 6809 vs. 6502 その8
http://ikura.2ch.net/test/read.cgi/i4004/1333965297/
8086 vs. Z80 vs. 6809 vs. 6502 その7
http://ikura.2ch.net/test/read.cgi/i4004/1319314159/
8086 vs. Z80 vs. 6809 vs. 6502 その6
http://toki.2ch.net/test/read.cgi/i4004/1286766300/
8086 vs. Z80 vs. 6809 vs. 6502 その5
http://toki.2ch.net/test/read.cgi/i4004/1280380374/
8086 vs. Z80 vs. 6809 vs. 6502 その4
http://gimpo.2ch.net/test/read.cgi/i4004/1252639237/
8086 vs. Z80 vs. 6809 vs. 6502 その3
http://gimpo.2ch.net/test/read.cgi/i4004/1235851359/
8086 vs. Z80 vs. 6809 vs. 6502 その2
http://gimpo.2ch.net/test/read.cgi/i4004/1213527504/
8086 vs. Z80 vs. 6809 vs. 6502
http://bubble6.2ch.net/test/read.cgi/i4004/1165801265/
6809とZ80 part 2
http://bubble4.2ch.net/test/read.cgi/i4004/1093190685/

279 :ナイコンさん:2016/08/28(日) 22:04:28.05 .net
> swap nibbles でググると C で書いたサンプルがぞろぞろ出てくるんだからそれなりに需要はあるんじゃね?

で、AVR用のコンパイラでそのコードをコンパイルするとSWAP命令が出力されんの?
されないならその程度のもんてことでいいかな?

280 :ナイコンさん:2016/08/28(日) 22:14:35.81 .net
仕事終わりました、横から失礼します(コソコソコソ・・・)

>>240
>予めDにテーブルアドレスの上位8ビットを入れておけば、
レス、ありがとうございます。
そうです、テーブル使えば入れ替え自体は
7ステートでいけるのはわかってたんですが
(xx)を使ってる分、そのあとの処理でどうしても
レジスタが裏も足りなくなってしまって・・・
Aレジの上下入れ替え、4ステート1バイトで出来ればなぁと愚痴ってしまいました。

>>241
デザイナーさんがどうしても画面を
ゴリゴリ書き換えたいとの要求で
それで4Kのダブルバッファなんですよ。
この部分に関してはメモリは二の次です。

>>244
自分の場合は(BC)で交換してたんですが
テーブルは0000Hを先頭にして、テーブル参照してました。
まだ足りん!と言われればまだ頑張れます。

自分の書き込みで流れが変わってしまって申し訳ないです。これでおわりにします。
横から申し訳ありませんでした。

281 :ナイコンさん:2016/08/28(日) 22:21:57.83 .net
> デザイナーさんがどうしても画面を
> ゴリゴリ書き換えたいとの要求で
> それで4Kのダブルバッファなんですよ。

「何m秒内に何バイト書き換えたい」みたいな具体的な話がないってことは
要求仕様がないってことなんだがなあ。

282 :ナイコンさん:2016/08/28(日) 22:23:54.76 .net
>>278
意味がわからん
機能が必要だから命令を作るだけの話だろ
x86 の enter / leave みたいにC言語(だけではないけど)向けの命令とかもあるし

283 :ナイコンさん:2016/08/28(日) 22:26:20.35 .net
>>279
コンパイラの出来がこの話になんの関係が?

> されないならその程度のもんてことでいいかな?

いいんじゃね?
お前のなかではな

284 :ナイコンさん:2016/08/28(日) 22:30:43.27 .net
>>283
> コンパイラの出来がこの話になんの関係が?

関係ないのか。了解。

$ avr-gcc -v
Using built-in specs.
COLLECT_GCC=C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-gcc.exe
COLLECT_LTO_WRAPPER=c:/program\ files\ (x86)/arduino/hardware/tools/avr/bin/../libexec/gcc/avr/4.8.1/lto-wrapper.exe
Target: avr
Configured with: ../gcc-4.8.1/configure --enable-fixed-point --enable-languages=c,c++
--prefix=/c/jenkins/workspace/toolchain-avr-windows/objdir --enable-long-long
--disable-nls --disable-checking --disable-libssp --disable-libada --disable-shared
--enable-lto --with-avrlibc=yes --with-dwarf2 --disable-doc --target=avr
Thread model: single
gcc version 4.8.1 (GCC)

$ cat swap.c
unsigned char swapNibbles(unsigned char x)
{
return ( (x & 0x0F)<<4 | (x & 0xF0)>>4 );
}

$ avr-gcc -S -O2 swap.c -o -
.text
.global swapNibbles
.type swapNibbles, @function
swapNibbles:
swap r24
ret

285 :ナイコンさん:2016/08/28(日) 22:30:44.04 .net
Cコンパイラってenter / leaveはBPレジスタのセット用にしか使ってないような・・・??
DOSの頃にMS-C/C++7.0で確認したのが最後だからその後はどうなってるか知らないけど。

286 :ナイコンさん:2016/08/29(月) 01:05:17.58 .net
4bitの入れ替え命令追加とかよりも、
普通にLD B,BなどをEX A,B(LD A,AはEX A,Fあたりかな?)にしてくれるだけでも十分うれしいと思うんだ、俺w

そもそも時間足りないとかならそのCPUを採用してるHWアーキテクトが馬鹿なんじゃない?

287 :ナイコンさん:2016/08/29(月) 01:20:38.76 .net
命令長馬鹿は消えてくれ。

288 :ナイコンさん:2016/08/29(月) 01:23:03.69 .net
bitの入れ替えだけなんか一番実装が楽な命令じゃねーか。便利なんだからどんどん追加しろよ。

用途が分からない馬鹿はコード書いたことない馬鹿だからスルーで。

289 :ナイコンさん:2016/08/29(月) 01:49:34.06 .net
>国会図書館と言われてるのに他を探してないぞと大騒ぎw 馬鹿丸出しだなw
>隔離スレ立ってるるからスレチな粘着C馬鹿はそっちへひっこめ
>>20 またおまえか。馬鹿は引っ込んでろ。
> その変数のレジスタ割り当て規則は、馬鹿に深く考えるより、単純にFIFOがふつうに効率がいいと分かってる。
>僅かな努力もしないことを馬鹿にされててこの態度w
>ちょっとぐぐればわかる程度のことを他人に聞く馬鹿が逆切れw
>PICなんて高クロックチップ出してくる時点で6809を馬鹿にしてる。
> サウンド用とかFD用とかじゃなくてSMPなの? 馬鹿?
>6502オタはほんと馬鹿だな。
>馬鹿じゃないのコイツ
>上下4ビットの入れ替えで馬鹿はヒドイ。
>4bitスワップつけてくれてるからいろいろ助かるわけで馬鹿な設計ではないよ。
>1語16bitのアーキテクチャ持ち出して何が言いたいのかなこの馬鹿は?
> >>247 馬鹿なの?
> >>250 どう考えても馬鹿。
> >>251 こいつすげー馬鹿だw
> >>247 馬鹿はおまえだと思うぞ。
> 馬鹿しか言えないいつもの馬鹿はスルーしろ。
>そもそも時間足りないとかならそのCPUを採用してるHWアーキテクトが馬鹿なんじゃない?
>命令長馬鹿は消えてくれ。
>用途が分からない馬鹿はコード書いたことない馬鹿だからスルーで。

馬鹿ばっかし

290 :ナイコンさん:2016/08/29(月) 02:06:48.61 .net
>>289
よほど悔しかったと見えるw

291 :ナイコンさん:2016/08/29(月) 02:50:52.48 .net
> bitの入れ替えだけなんか一番実装が楽な命令じゃねーか。便利なんだからどんどん追加しろよ。
>
> 用途が分からない馬鹿はコード書いたことない馬鹿だからスルーで。

8086の設計者とZ80の設計者と6809の設計者と6502の設計者を敵に回したなw

292 :ナイコンさん:2016/08/29(月) 02:53:23.63 .net
次の名物は4bit君かw

293 :ナイコンさん:2016/08/29(月) 03:12:27.10 .net
>>292
いやいや次の迷惑物は馬鹿馬鹿連呼のオマエ様。お馬鹿君w

294 :ナイコンさん:2016/08/29(月) 04:42:28.09 ID:4HX1HKbk.net
トラ技2008年8月号の付録USB基板で、NECエレ(現ルネサス)の 78K0 を
初めて触ったときに、マニュアル(pdf)に ROR4 や ROL4 という命令が

31 91 ROR4 [HL]  // Aのb3-0 → dstのb7-4 → dstのb3-0 (Aのb7-4は不変)
31 90 ROL4 [HL]  // Aのb3-0 ← dstのb7-4 ← dstのb3-0 (Aのb7-4は不変)

どういう時に使うのか不思議に思った記憶が…。必要サイクル数も不明(2バイト命令なので遅いかも)
でもスワップじゃないし、あまり関係ない書き込みですみません
というか、ほとんど基板を試さずに投げ出してしまったので、何も学ばなかった orz

295 :ナイコンさん:2016/08/29(月) 05:05:03.89 .net
>>291
8086は4ビットシフトできるし、Z80は4bit取り出し命令ある。

296 :ナイコンさん:2016/08/29(月) 06:32:35.89 .net
> 8086は4ビットシフトできるし、

CLで回数指定するとその分サイクル数を消費するし、

> Z80は4bit取り出し命令ある。

誰もそんな話してないんだよなあ。話の流れがまったく読めない人かな?

297 :ナイコンさん:2016/08/29(月) 06:39:18.94 .net
まさか6809は究極の8bitだし、6502は信者最強の8bitだしないわけないよな。

298 :ナイコンさん:2016/08/29(月) 06:41:00.92 .net
>>295
8086 の ROL reg.CL で上下4ビットを交換すると24クロック掛かる。

http://zsmith.co/intel_r.html#rol
> reg,CL 8+4n

>>235の言う

> シフト4回で全く問題無いんだけど
> 4Kで構成している仮想VRAMを走査してる時に
> 上下入れ替えするためにシフト4回は最低でも16ステート。
> これは時間がかかり過ぎる。

には遅すぎだろ。ROL reg.1 を4回繰り返した方がよっぽどマシだわ。

299 :ナイコンさん:2016/08/29(月) 06:49:15.96 .net
>>295
> Z80は4bit取り出し命令ある。

ちょっと何言いたいんだかわからん。
レジスタの内容の上位4ビットを下位4ビットに1命令で移動させたい、
みたいな希望の筈だがZ80にそんな命令あったっけ?
RLDなら(HL)の内容を書き換えてしまうし第一遅杉じゃね?

300 :ナイコンさん:2016/08/29(月) 06:51:25.73 .net
10進表記では4bitが基本となるからたいていのCPUで4bi操作に関する機能は追加されてる。

301 :ナイコンさん:2016/08/29(月) 07:02:04.25 .net
>>294
> トラ技2008年8月号の付録USB基板で、NECエレ(現ルネサス)の 78K0 を
> 初めて触ったときに、マニュアル(pdf)に ROR4 や ROL4 という命令が
>
> 31 91 ROR4 [HL]  // Aのb3-0 → dstのb7-4 → dstのb3-0 (Aのb7-4は不変)
> 31 90 ROL4 [HL]  // Aのb3-0 ← dstのb7-4 ← dstのb3-0 (Aのb7-4は不変)

命令の働きはZ80のRRDやRLDと同等のものだろう。使い道は主にはBCDデータの
桁シフトと思われる。

トラ技の付録基板の搭載マイコンは
http://shop.cqpub.co.jp/hanbai/books/42/42121/42121_p.13-159.pdf
> 付属基板は,NECエレクトロニクスのUSB内蔵ワンチップ・マイコン
> μPD78F0730の周囲に,最低限の周辺回路を搭載したコンパクトなものです.

とある通りμPD78F0730というものだろう。
『μPD78F0730ユーザーズマニュアル ハードウェア編』というのを見てみると
Aレジスタを1ビット右ローテートするROR A, 1が2クロックなのに対して、
Aレジスタの下位4ビットと[HL]の内容を4ビットローテートするROR4 [HL]が
10クロックとあるので、まあ随分遅い命令であることは確か。

302 :ナイコンさん:2016/08/29(月) 07:03:15.25 .net
>>300
6809の設計者と6502の設計者を敵に回したなw

303 :ナイコンさん:2016/08/29(月) 07:26:06.28 .net
さすがに8086を前にして究極の8bitは気が引ける

304 :ナイコンさん:2016/08/29(月) 07:26:30.77 .net
>>302
どっちもある。

305 :ナイコンさん:2016/08/29(月) 07:30:09.65 .net
> どっちもある。

BCD演算かなんかと勘違いしてんだろうな。

306 :ナイコンさん:2016/08/29(月) 07:32:20.69 .net
>>304
6809と6502で「4bi操作に関する機能」ってどういうののこと言ってんの?

307 :ナイコンさん:2016/08/29(月) 07:33:04.12 .net
> BCD演算かなんかと勘違いしてんだろうな。

そんなとこだろうね。

308 :ナイコンさん:2016/08/29(月) 07:39:32.47 .net
レジスタの中身 0x12 を命令1つで 0x21 にできたら楽だろ。
ただそれだけの話しじゃないかwww

309 :ナイコンさん:2016/08/29(月) 07:41:59.13 .net
>>300
> 10進表記では4bitが基本となるからたいていのCPUで4bi操作に関する機能は追加されてる。

BCD補正のこと言いたいならCOBOLや電卓の時代を引きずった古いアーキテクチャ
限定じゃね? 「たいていのCPU」は正確ではないんじゃないかなあ。

310 :ナイコンさん:2016/08/29(月) 07:43:08.06 .net
> レジスタの中身 0x12 を命令1つで 0x21 にできたら楽だろ。

ADD A,0FH

なるほど。これは楽だな。

311 :ナイコンさん:2016/08/29(月) 07:45:10.63 .net
4ビット交換に拘ってる奴ってプログラム書いたことないんだろうなあ。

312 :ナイコンさん:2016/08/29(月) 07:53:09.88 .net
そーいやx64では8080や8086から受け継がれてきたBCD演算関係の命令が
バッサリ廃止されたけどAMD的に「まーいらねっか」という判断だったんだろうね。

313 :ナイコンさん:2016/08/29(月) 08:03:34.05 .net
amd64のドキュメント読まないでそういう嘘言っちゃダメだよ。

314 :ナイコンさん:2016/08/29(月) 08:04:27.37 .net
>>311
何を根拠にそんなことを思ったの?

315 :ナイコンさん:2016/08/29(月) 08:50:01.91 .net
>>313
x64ってシッカリと書いてあるだから、読んでねぇーのはテメェの方だろ

AAA,AAD, AAM, AAS
Using this instruction in 64-bit mode generates an invalid-opcode exception.

316 :ナイコンさん:2016/08/29(月) 10:54:33.39 .net
64ビットモードに切り替えると使えなくなるとかかしら

317 :ナイコンさん:2016/08/29(月) 11:57:33.30 .net
引き際を誤って自己主張しすぎた4bit君フルボッコで涙目すぎw

318 :ナイコンさん:2016/08/29(月) 12:53:23.32 .net
>>315
> AAA,AAD, AAM, AAS

8080 や 8086 にそんな命令ないだろ w

>>316
> generates an invalid-opcode exception.
(不正命令例外が発生する)

319 :ナイコンさん:2016/08/29(月) 14:44:12.88 .net
> > AAA,AAD, AAM, AAS
>
> 8080 や 8086 にそんな命令ないだろ w

http://www.electronics.dit.ie/staff/tscarff/8086_instruction_set/8086_instruction_set.html#AAA

320 :ナイコンさん:2016/08/29(月) 15:16:57.52 .net
> > AAA,AAD, AAM, AAS
>
> 8080 や 8086 にそんな命令ないだろ w

ちょっとぐぐれば出てくる程度のことで何故恥を晒すのかな
https://www.google.co.jp/#q=8086+instruction+AAA

321 :ナイコンさん:2016/08/29(月) 15:18:22.93 .net
リンクが上手くいかんな
h ttps://www.google.co.jp/#q=8086+instruction+AAA

322 :ナイコンさん:2016/08/29(月) 17:48:38.62 .net
>>319-321
すまん 8086 を消し忘れた

323 :ナイコンさん:2016/08/29(月) 17:57:12.39 .net
>>amd64のドキュメント読まないでそういう嘘言っちゃダメだよ。

これのどこから、8080とか出てくるんだ
馬鹿すぎて、8080と8086の区別もがつかないか

324 :ナイコンさん:2016/08/29(月) 18:01:58.42 .net
>>322
DASやAAAその他が8080からあったという主張なら「8080や8086から
受け継がれてきたBCD演算関係の命令」とは書かんだろ。

8080から(以降のプロセッサへ)受け継がれてきたBCD演算関係の命令
DAA

8086から(以降のプロセッサへ)受け継がれてきたBCD演算関係の命令
DAS AAA AAD AAM AAS

325 :ナイコンさん:2016/08/29(月) 18:06:13.87 .net
>>323
8086の命令セットは8080のそれを下敷きにしてて素直に組まれた
プログラムなら機械的にコンバートもできるんだが知らんの? 馬鹿だから??

326 :ナイコンさん:2016/08/29(月) 18:07:00.00 .net
4bit君はホント馬鹿だなw

327 :ナイコンさん:2016/08/29(月) 18:08:03.37 .net
更に恥の上塗りだな

328 :ナイコンさん:2016/08/29(月) 18:23:35.15 .net
64ビットモーならBCD専用命令使えなくても問題ないというのは、有りだな。
設計者もクソ広いメモリーに、バカ速いCPUでわざわざBCD専用命令残すより、他の命令に割り当てたほうが有効だって判断したんだろうさ。

329 :ナイコンさん:2016/08/29(月) 18:39:40.36 .net
> Using this instruction in 64-bit mode generates an invalid-opcode exception.
ってあるから、他の命令を割り充てたりしてはいないよ
該当OpCode領域はそのまま残してあって、もしそのコードを使えば例外が発生する

使用頻度から考えて、他の命令で代替して貰っても なんら問題ないって判断だな

330 :ナイコンさん:2016/08/29(月) 18:42:38.63 .net
BCD命令便利だろ。
バイトスワップ命令便利だろ。
バイトスワップあるならニブルスワップ命令あったら使うだろ。
コンパイラが使うだろ、有れば。
なければ他の命令に置き換えるだけだろ。

331 :ナイコンさん:2016/08/29(月) 19:11:58.15 .net
long modeでもCompatibility modeでは動くから実装は乗ってる。
64bit modeだけ例外投げるということは他に理由があるのだろう。

332 :ナイコンさん:2016/08/29(月) 19:38:35.71 .net
4bit君は他の名物と同様、聞きかじりで知ったかドヤ顔したいだけのにわかなんだなぁw

333 :ナイコンさん:2016/08/29(月) 19:53:39.47 .net
C言語ありえないクンが独りじゃ寂しいそうだぞwww

ざまぁ。

334 :ナイコンさん:2016/08/29(月) 19:57:34.30 .net
この人はずっと誰と戦ってるのだろう?

335 :ナイコンさん:2016/08/29(月) 20:13:06.37 .net
> 64bit modeだけ例外投げるということは他に理由があるのだろう

32ビット互換モードとがらりと変わるレジスタ構成あたりが関係してるんじゃないかと思う。
別な理由があるのかもしれないけど。

336 :ナイコンさん:2016/08/29(月) 21:57:49.50 .net
>>334
久々に煽り耐性の無い新人が来たからじゃれたくて仕方ないんだろいい年こいて草はやしてまあみっともない

337 :ナイコンさん:2016/08/29(月) 22:00:22.28 .net
> 久々に煽り耐性の無い新人が来た

ということにしたいのは分かったw

338 :ナイコンさん:2016/08/29(月) 22:29:27.03 .net
客観的に見たまんま書いただけだよ恥の上塗りだな

339 :ナイコンさん:2016/08/29(月) 23:26:58.36 .net
煽って罵倒するだけしか能のない爺は死ねよ、邪魔だ。

340 :ナイコンさん:2016/08/29(月) 23:28:44.17 .net
専用スレ立てられて、ワッチョイになったから逃げ出したチキンが生きてたって無駄だからな、死ねよ。

341 :ナイコンさん:2016/08/30(火) 00:40:04.41 .net
温室育ちがにわか知識で過去を語ってドヤ顔する……芸風かわらねぇw

342 : 294:2016/08/30(火) 02:04:34.94 ID:teNCcxtT.net
>>301
わざわざ調べてくださって有難うございます。取説のハードウェア編を見落としてました
Z80のRRD/RLDをすっかり失念してました。まじで認知症が始まったかもw
何かRLDの使用例がないかググってみたら、MSXフォーラムで

[HL]の内容を16進アスキー2桁で表示する例
  xor a
  rld      ;まず上4bit読出し
  call Nibble
Nibble      ;二回通る(日本語のコメントは自分勉強用の追加です)
  push af
  daa      ;0-9ならそのまま,A-Fなら10h-15h
  add a,F0h  ;F0h-F9h,キャリーと0-5
  adc a,40h  ;30h-39h,41h-46h つまり'0'-'9','A'-'F'
  call a2h   ;CHPUT (MSXの1文字出力?)
  pop af
  rld      ;1回目は上4bit書き戻し 2回目は下4bit書き戻し
  ret
https://www.msx.org/forum/development/msx-development/rld-and-rrd-z80-commands-any-usage
cなら自分は教科書的に m += ( m < 10 )? '0': 'A'-10; みたいな
のを2回書くところを、Z80でこんな方法があるなんて、なんか感動した
DAAをうまく使ってA〜Fを振り分けるのもビックリだけど
ちゃんと3回まわしてメモリ内容が元に戻るのもすごい
しいて難点をあげるなら、不必要にRAM内容を変えることかな
ROMだと下4bitがダメだし (どこか転記間違いや勘違いがあったら陳謝)

343 :ナイコンさん:2016/08/30(火) 02:16:22.05 ID:teNCcxtT.net
関係ないけど、いつもインテルの AAA とか、モトローラの SEX や ABCD とか見ると
両社がニーモニックで、ユーモア度を張り合ってるのかと勘ぐってしまうw

344 :ナイコンさん:2016/08/30(火) 03:35:28.82 .net
>>342
> しいて難点をあげるなら、不必要にRAM内容を変えることかな
> ROMだと下4bitがダメだし

俺がいま鼻クソほじりながら書いたコードで上の難点はないし
コードサイズも変わらん。こんなんで大騒ぎしなくていいぞ。

    ld   a,(hl)
    rra
    rra
    rra
    rra
    call  nibble
    ld   a,(hl)
nibble:and   0fh
    cp   10
    sbc   69h
    daa
    jp   0a2h

345 :ナイコンさん:2016/08/30(火) 03:57:35.93 ID:teNCcxtT.net
!id:on
>>344
ふぇ〜、有難うございます。昔はゲームで遊んでばかりで、ろくに機械語を
学ばなかった自分のような中年初心者には、とても勉強になります

BCD補正命令を、こういう用途に使うって発想がそもそも自分になかった
過去スレで平方根(2進開平法)を教わった時以来の、久々の快感w

346 :ナイコンさん:2016/08/30(火) 04:50:03.76 ID:teNCcxtT.net
>>344  (追伸)
なんで call じゃなくて jp 0a2h で、しかも最後に ret が無いのか
考え込んで、寝られなくなった… 今やっと理解した
文字出力ルーチン側の ret でそのまま戻るのか! って、もうこんな時間w

347 :ナイコンさん:2016/08/30(火) 06:03:40.78 .net
>>219
組み込みでは、コア部分の性能が劣るのにPIC の方がシェア高い。

特に量産する組み込みでは、コア性能よりコスト。

348 :ナイコンさん:2016/08/30(火) 08:34:57.39 .net
>>347
要求される仕様が満たされば良いのであり必要以上のコア性能など不要。

349 :ナイコンさん:2016/08/30(火) 16:58:21.56 .net
バランスの問題だな。
過剰なスペックはいらん。

350 :ナイコンさん:2016/08/30(火) 17:27:31.66 .net
>>347
よく知らんけど最近はそうでもないんじゃないの?
32bitコアが馬鹿みたいに安くなっちゃったから、しぶとく生き残ってた8052コアなんかここ数年で
ほとんど駆逐されちゃったよね。

PICも恐らく同じだと思うんだけど

351 :ナイコンさん:2016/08/30(火) 18:19:50.88 .net
昔の12bit/14bitPICは6502並みのダメ子だったけど
今の16bitPICは普通になった
dsPIC/PIC24系に至っては、レジスタ幅も16bitのプロセッサになっちゃたし

ARMローエンドのM0とかだと対抗馬になっても駆逐は難しいのでは

352 :ナイコンさん:2016/08/30(火) 21:08:34.35 .net
x64にハーフキャリーはないの?

353 :ナイコンさん:2016/08/30(火) 21:37:59.33 .net
>>351
M0とかになると、ソフトの互換性かなり落ちるしな。

354 :ナイコンさん:2016/08/30(火) 22:23:26.06 .net
>>352
https://support.amd.com/TechDocs/24593.pdf
> Figure 3-7. RFLAGS Register

> 4 AF Auxiliary Flag R/W

355 :ナイコンさん:2016/08/30(火) 22:26:56.40 .net
>>352
http://developer.amd.com/wordpress/media/2012/10/24592_APM_v11.pdf
> Auxiliary Carry Flag (AF). Bit 4. Hardware sets the auxiliary
> carry flag if an arithmetic operation or a binary-coded decimal
> (BCD) operation generates a carry (in the case of an addition)
> or a borrow (in the case of a subtraction) out of bit 3 of the
> result. Otherwise, AF is cleared to zero.
> The main application of this flag is to support decimal arithmetic
> operations. Most commonly, this flag is used internally by
> correction commands for decimal addition (AAA) and subtraction (AAS).

356 :ナイコンさん:2016/08/30(火) 22:38:40.45 .net
フラグまで無くすと複数の命令を組み合わせて10進補正命令を再現
することも困難になるからそうそう無くせはしないだろうね。

357 :ナイコンさん:2016/08/31(水) 00:20:56.11 ID:Az6OpG94.net
質問です。減算後のBCD補正機能が 6800,6809や8080A(NEC版を除く)には無いけど
これは加算用のDAAを使って、何か減算用に代用できるアルゴリズムでもあるのでしょうか?
8086,Z80,6502にできて、6809だけBCD減算できない(?)とすると、信者として結構ショックw

358 :ナイコンさん:2016/08/31(水) 01:18:13.75 .net
>>357
加算ができれば補数(10の補数)を使って減算に変換できる理屈は2の補数と同じだと思うよw
要は、例えば1バイト(2ケタ)であれば、1を引くのは99を足すのと同じだよね

359 :ナイコンさん:2016/08/31(水) 02:29:17.64 .net
一応もうちょっと捕捉。
10の補数を求める方法も2の補数を求める方法と同じ。

1の補数を求めて1足せば2の補数になるように、9の補数を求めて1をBCD加算すれば10の補数になる。
9の補数の求め方は考えれば分かると思うので省略(笑)

360 :ナイコンさん:2016/08/31(水) 04:25:15.55 ID:Az6OpG94.net
>>358 >>359
有難うございます。なるほど、10の補数で考えれば簡単だった!
引く数をまず99hから引いて1足して、それを最初の数に足しこんで
最後にdaaならすぐできそうですね。キャリー処理とか含めると
BCD加算に比べてかなりクロックが増えそうだけど、もう少し自分で工夫してみます
歳とって頭がすっかり硬くなってるw

6800との互換性を考えてなのか、マニュアルみると6809のフラグHも減算時は不定だし
Hだけ分岐がないし、別命令扱いでもBCD減算ぐらい実装すれば良かったのに、とか
考えてしまった。まあ30年間一度もdaaを使えなかった自分が言う資格はないかw

ついでに日立 6309 の追加命令 SBCD を見つけたので、もしやこれが?と思ったけど
単なる Dレジのボロー付き減算(SBCAやSBCBのD拡張)だったというオチ

361 :ナイコンさん:2016/09/02(金) 13:02:19.70 .net
BCD減算www

362 :ナイコンさん:2016/09/03(土) 12:01:58.75 .net
6502のゼロページはなんでレジスタ扱いなんですか?

363 :ナイコンさん:2016/09/03(土) 13:27:57.75 .net
レジスタファイル

364 :ナイコンさん:2016/09/03(土) 13:38:41.72 .net
ググってもレジスタファイルが実装されてるという記述は見当たりませんでした。

365 :ナイコンさん:2016/09/03(土) 13:53:13.45 .net
>6502のゼロページはなんでレジスタ扱いなんですか?

そんな事実ないから。

366 :ナイコンさん:2016/09/03(土) 14:26:30.00 .net
NG レジスタとして扱える
OK レジスタのように扱える
こうかな?
6502は全くさわったことないんだけどね

367 :ナイコンさん:2016/09/03(土) 15:37:12.81 .net
「レジスタのように扱える」が意味不明

368 :ナイコンさん:2016/09/03(土) 15:53:55.25 .net
6502まったく知らんけどハーバードアーキテクチャーのSFRみたいなものなんじゃないの

369 :ナイコンさん:2016/09/03(土) 16:11:09.73 .net
>>368はハーバードアーキテクチャもよくわかってないみたいだからも少し勉強すれ

370 :ナイコンさん:2016/09/03(土) 16:12:46.40 .net
>>369
毎日仕事で使ってましたw
勉強すれてw

371 :ナイコンさん:2016/09/03(土) 16:23:58.49 ID:CsFBv0uE.net
>>87
> 6502てメモリの00-ffhはレジスタみたいに使えるってよく見るけど、
> 命令を1バイト短くできるだけで消費クロックとか別に何の優位性もないよな?

>>362
> 6502のゼロページはなんでレジスタ扱いなんですか?

同じ人でしょうか? 自分が思うに、これは 6502 の話というより
ワンボードマイコン期(1970年代末)に一般的だった
「8080系と6800系はどっちが使いやすいか?」という論争が発端かと

8080信者: アキュムレータが一個だけど、レジスタは複数あって便利だぞ
6800信者: アキュムレータは二つあるぞ。演算用レジスタはないけど
 オペランド8bitで、250個以上もの場所をあたかもレジスタっぽく使えて便利だぞ

当時の状況では、なるべくコードサイズを短くするのは重要だったので
2バイト直接指定だけでなく、1バイト指定のアドレッシングモードもあるよ!
って叫ぶのが、信者とモトローラ系営業マンの売り文句だった記憶
6502は単にその思想の一部を引き継いだという感じ
で 6809 では、DPR(ダイレクトページレジスタ)が導入されて、やっと
64K全空間に拡張された、と

周辺コントローラの知識はほとんどないんですが、SFR(特殊機能レジスタ)とかは
たぶん実装の仕方も、そのアドレス領域についてはきちんと専用設計になってると
思われるので、6800の単なるアドレスオフセット的なものとはかなり違う印象

372 :ナイコンさん:2016/09/03(土) 17:00:28.26 .net
>>370
ハーバードアーキテクチャとSFRは関係ない。

373 :ナイコンさん:2016/09/03(土) 17:22:42.09 .net
>>372
いやいや、メモリーマップトI/Oみたいなのを便宜上SFRと呼ぶことはあるけど、
それは本来のSFRではないと思うけど。

まあそれを言い出したらハーバードアーキテクチャーのSFRだって本来の意味でレジスタなのかって
疑問もあるけども。

374 :ナイコンさん:2016/09/03(土) 17:41:32.61 .net
土日はゼロページでスレが伸びそうだねw

375 :ナイコンさん:2016/09/03(土) 17:47:17.22 .net
> まあそれを言い出したらハーバードアーキテクチャーのSFRだって本来の意味でレジスタなのかって
> 疑問もあるけども。

「レジスタ」の意味も分かってないのかw

376 :ナイコンさん:2016/09/03(土) 17:49:23.81 .net
>>375
英語の単語はだいたいそうだけど、レジスタって言葉も多義的な言葉で文脈によって意味が変わるよ。
言っちゃ悪いけど、ド素人なら黙ってりゃいいのに。

377 :ナイコンさん:2016/09/03(土) 18:02:47.17 .net
ゼロページメモリのない6502はHLレジスタのないZ80、IXレジスタのない6800

378 :ナイコンさん:2016/09/03(土) 18:10:29.04 .net
>>377
HLレジスタ縛りで実装はキツすぎるなぁ
かなりメモリバカ食いすると思うなぁ
6502はゼロページなしで制限なく実装できる?

総レス数 1000
264 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200