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/

199 :ナイコンさん:2016/08/27(土) 01:50:36.46 .net
一般的なZ80AのLDIRなら下準備にこそ30クロックもかかるが、
その後は1バイト21(最後は16)クロックで転送できる上カウンタも16bit、
その上標準的なクロックも倍以上だからなぁ……

200 :ナイコンさん:2016/08/27(土) 03:37:40.92 .net
登場当時:
 Z80    2.5MHz
 MOS 6502 1MHz

現在:
 Z84C00   20MHz
 W65C02S  14MHz

201 :ナイコンさん:2016/08/27(土) 04:34:39.33 .net
>>184
> ゼ、ゼロページは他のプロセッサのレジスタみたいなもんなんだぞ...(汗

割り込み処理やRTOSでのコンテキスト切り替えで「他のプロセッサのレジスタ
みたいなもん」はどうすんの?
256バイトしか使えないスタックにゼロページの内容を退避するとは
思えないし、そもそもRTOSじゃタスクごとにスタック領域を別に取る
ことも当たり前に行われてるけど6502じゃその辺どうすんのかな。

RTOSを使わないにしても>>193みたいに引数/ワークをゼロページに
取ってるサブルーチンは割り込み処理からは使いにくいと思うん
だけど割り込み処理用に同じ内容で別にサブルーチン用意したり
すんの?

202 :ナイコンさん:2016/08/27(土) 07:02:07.73 .net
電化製品分解して6502乗ってたことなんて一度もないわ。最近はavrをよく見る。

203 :ナイコンさん:2016/08/27(土) 08:25:41.12 .net
>>194, >>198
256 バイト以上は二重ループにすればいいだけだからそんなに面倒ではない
あと綺麗に書けると言ってるだけで毎回間接アクセスするんだから遅いのはしょうがないわな

>>197
iny は素直に忘れてた
cly はループの外だからあえて書いてない
[source], [dest] への設定を書いてないのと同じ

204 :ナイコンさん:2016/08/27(土) 08:27:57.38 .net
>>201
スタック領域が 256 バイトしかない 6502 になに過剰な期待してるんだよ...

205 :ナイコンさん:2016/08/27(土) 08:28:59.16 .net
>>201
余り攻めたててやるなw
だから、恐る恐る語ってる。HPは初めからほぼ0だったんだ。

206 :ナイコンさん:2016/08/27(土) 08:53:13.76 .net
>>202
> 電化製品分解して6502乗ってたことなんて一度もないわ。最近はavrをよく見る。

日本製の家電製品では86,z80,09,6502みたいな汎用cpuの実装例はまずないね。
ROMRAM内臓のワンチップ系4/8ビットCPUばかりでしょ。ふつう。

207 :ナイコンさん:2016/08/27(土) 08:57:27.05 .net
>>206
W65C02S 14MHz というのは一体どの製品で誰が使っているのですか?

208 :ナイコンさん:2016/08/27(土) 09:20:43.39 .net
>>207
http://www.mouser.jp/ProductDetail/Western-Design-Center-WDC/W65C02S6TPG-14/?qs=opBjA1TV903lvWo9AEKH5w%3D%3D
1:\787.4 (JPY)
10:\674.1 (JPY)

現実に売ってるんだから、需要はあるだろ

209 :ナイコンさん:2016/08/27(土) 09:33:09.68 .net
売ってるから使われてるは無茶な論理だ。
今でも使われてるなら例を挙げるべきだ。

210 :ナイコンさん:2016/08/27(土) 09:53:52.38 .net
ググれよ、腐れ朝鮮人

211 :ナイコンさん:2016/08/27(土) 10:02:40.60 .net
>>201
そのコンテキスト切り替えのためにブロック転送が速いんでしょw

>>202
そりゃ6502とマーキングされたチップなんか絶対乗らんよ。
ただ、全く使われなかったかと言えばそんなことはなくて、1990年代の日本では三菱のMELPS740
シリーズのコアとして家電にとんでもない数量使われていたよ。

212 :ナイコンさん:2016/08/27(土) 11:54:30.61 .net
派生品のルネサス740が使われてるからってW65C02Sが使われてることにするとは
さっきから無茶な論理ばかりだな。

213 :ナイコンさん:2016/08/27(土) 12:22:55.54 .net
6809はダイレクトページやエクステンドアドレッシング時にムダサイクルが入る手抜き設計だし
Z80は命令1バイト読む度にバスが空く手抜き設計だし
もっとマジメに作れよ

214 :ナイコンさん:2016/08/27(土) 13:03:43.11 .net
>>212
この流れで書きこむの初めてなんだけど?上で何か言われて火病でも起こした?
ルネサス740ねぇ、新鮮な響きだな。俺が知っているのは三菱時代だけだが
ルネサスになってからも作ってたのかなぁ?

215 :ナイコンさん:2016/08/27(土) 14:11:18.91 .net
6502オタってほんとイタイよな。

216 :ナイコンさん:2016/08/27(土) 14:41:25.89 .net
そんなこと書くお前や俺の方がイタイと思う

217 :ナイコンさん:2016/08/27(土) 15:39:49.27 .net
7540(新規採用非推奨品)
ってなってるから、作ってはいるみたいだな
使ってもらいたくはないだろうが

218 :ナイコンさん:2016/08/27(土) 16:18:48.60 .net
古いものを大事に使うのは悪いことじゃないが、古いものにしがみつくのはバカで害悪。
そういうことだ。

とっととディスコンにしちゃえば諦めて新規開発に置き換えるのにねぇ。
日本のメーカーはその辺りの判断が下手だわ。

219 :ナイコンさん:2016/08/27(土) 16:29:57.10 .net
6502信者はたとえば後発のアーキテクチャであるAVRのレジスタ数や命令セット見てど思うわけ?
もう6502いらねって思わないの? 今でも6502を組み込みで採用したいと思ってるの?

220 :ナイコンさん:2016/08/27(土) 16:38:45.07 .net
あの頃は面白かったなぁって感じでしょ
今からやるのに 6502 をわざわざ選択する奴はいないと思うぞ

221 :ナイコンさん:2016/08/28(日) 00:43:41.09 .net
趣味でなら使ってみたくはあるな、俺w

222 :ナイコンさん:2016/08/28(日) 02:34:06.01 .net
じゃあお前は使っていいぞ>>221

223 :ナイコンさん:2016/08/28(日) 10:33:26.66 .net
遊びならアンティーク趣味でも良いだろうね。
新規の仕事とか言ったら、そいつが本気かどうか疑うのをすっ飛ばして正気かどうか疑うレベル。

224 :ナイコンさん:2016/08/28(日) 11:22:42.76 .net
パチのカスタムCPUはZ80だけなんだろうか。
カスタム以前はZ80,6800,6502だったんだけどな。

225 :ナイコンさん:2016/08/28(日) 11:35:39.71 .net
>>224
あれって、違法性を検査する保通協とかナンチャラの検査官がz80のコードしか受け付けたくない。
それ以外は検査パスに時間かかり過ぎ必至とかのいい加減な事情でz80もどきがデファクトになっている。とからしいの。

226 :ナイコンさん:2016/08/28(日) 12:23:59.94 .net
大量に売れた機種のGVRAMがどれも残念な仕様だったのがZ80の不幸

227 :ナイコンさん:2016/08/28(日) 12:52:00.99 .net
VRAMの構造もだけど、命令の無駄が多いのも残念だよな
レジスタの上下4ビットの入れ替えとか
普通に思いつくだろ、とかね
あと、インデックス関連のステート数も多すぎ
GB用のカスタムには上下入れ替えがあるみたいだけど
他にも使い勝手がいい命令あるんだろうな

228 :ナイコンさん:2016/08/28(日) 13:18:48.90 .net
> レジスタの上下4ビットの入れ替えとか
> 普通に思いつくだろ、とかね

どれくらいの頻度でそんな処理が必要になるという前提で「命令の無駄が多い」と言ってんの?

229 :ナイコンさん:2016/08/28(日) 13:23:19.27 .net
>>227
GBのSWAPよかZ80のRRD, RLDの方がよっぽど使い道あるだろ

230 :ナイコンさん:2016/08/28(日) 13:36:04.09 .net
>>227
>レジスタの上下4ビットの入れ替えとか

用途は??

231 :ナイコンさん:2016/08/28(日) 13:48:53.82 .net
簡易な難読化とか?

232 :ナイコンさん:2016/08/28(日) 13:56:12.29 .net
>>231
ローテート4回で問題あるかな? つか難読化ならニブル単位で見た目変わらん
上下4ビットの入れ替えはあんま良い方法とも思えんのだけど。

233 :ナイコンさん:2016/08/28(日) 13:59:50.95 .net
> レジスタの上下4ビットの入れ替えとか
> 普通に思いつくだろ、とかね

馬鹿じゃないのコイツ

234 :ナイコンさん:2016/08/28(日) 14:19:44.63 .net
>>230
16進変換とかでたまにあったらいいな
って思うぐらいかな

235 :ナイコンさん:2016/08/28(日) 14:27:26.22 .net
仕事中なんで、書き殴りで。

上下4ビットの入れ替えで馬鹿はヒドイ。

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

RRD、RLDは画面表示の時に必ず使う。
使い勝手がいいとかで無く、無いと困る。

SWAPが欲しいと思ったのは、今設計してるマップチップの情報が8ビットでは足りず、12ビットにしてるため。
だから、つきのアドレスの下位4ビットにも割り当ててるだけど、上位4ビットが空いてる。
3バイトで2つのチップが表現できるなら上4ビットを有効に使いたい。
単純に考えるならANDで取ってシフト4回なんだけど
シフトだけで16ステートは重すぎる。
で、今は上4は空きにしてる。

設計見直せと言われればそれまでなんだけど
Z80を見下して>>227を書いたのでは無いのは理解して欲しいな。

236 :ナイコンさん:2016/08/28(日) 14:42:25.34 .net
命令の無駄が多いって書いたのは
オペコードCB群に対して。
消費メモリは最低2バイト、ステートは最低8。
使いたいのは、(HL)の操作なんだけど
セット、リセットで15ステート。

時間がかけられない処理で、使いたい命令が使えない。
Z80ってこんな感じだよねって思うのは俺だけ?
むしろ、便利な命令が多いと思ってるよ。

237 :ナイコンさん:2016/08/28(日) 14:47:37.03 .net
RRD、RLDの画面表示ってのは、文字表示のこと。
VRAMへのストアの事ではないよ。
仕事のため、とりあえずここまで。

238 :ナイコンさん:2016/08/28(日) 15:11:37.60 .net
> 時間がかけられない処理で、使いたい命令が使えない。

オモワズウナズイテシマッタナ・・・

239 :ナイコンさん:2016/08/28(日) 15:30:23.27 .net
煽られ耐性低いな変iにからんでくるのはのは基本スルーでおけ

240 :ナイコンさん:2016/08/28(日) 15:44:12.55 .net
>>235
> 上下入れ替えするためにシフト4回は最低でも16ステート。
> これは時間がかかり過ぎる。

Aに入ってる値を例えばRRCAを4回で16ステートってことかな?
予めDにテーブルアドレスの上位8ビットを入れておけば、
Eに入ってる値の上下入れ替えた値をAに取得するのはLD A,(DE)で
できるから半分以下の7ステートで済むね。これでもまだ
時間がかかりすぎるかな?

241 :ナイコンさん:2016/08/28(日) 15:49:41.34 .net
>>235
「マップチップ」というのが何のことかわからんけどそれへの
アクセス速度や頻度ってどれほどの要求仕様でデザインしてんの?

242 :ナイコンさん:2016/08/28(日) 18:43:22.83 .net
任意bitのローテートがないCPUではすげー助かる。
アクセス時間に制約のあるハード叩かない素人にはどうでもいい話だな。

243 :ナイコンさん:2016/08/28(日) 18:49:42.31 .net
> 任意bitのローテートがないCPUではすげー助かる。

任意bitのローテート/シフトをサポートしてくれた方が便利じゃん。

244 :ナイコンさん:2016/08/28(日) 18:51:55.40 .net
>>235
要するに自分で工夫することサボって「こんな命令があったらなー」とか抜かしてるわけですね。

245 :ナイコンさん:2016/08/28(日) 18:57:13.40 .net
実際AVRでも任意bitシフトなくて4bitスワップつけてくれてるからいろいろ助かるわけで馬鹿な設計ではないよ。
コンパクトが売りの8bitでトランジスタ使いまくるのは本末転倒だろう。

246 :ナイコンさん:2016/08/28(日) 18:59:56.99 .net
何ビットでも二回で届くからとりあえず4ビットあればいい
レジスタペアで実行できるとさらにいい
ハードウエアでシフトとマスク処理して転送してくれたら最高

247 :ナイコンさん:2016/08/28(日) 19:05:11.29 .net
>実際AVRでも任意bitシフトなくて4bitスワップつけてくれてるからいろいろ助かるわけで

1語16bitのアーキテクチャ持ち出して何が言いたいのかなこの馬鹿は?

248 :ナイコンさん:2016/08/28(日) 19:08:35.61 .net
ニブルスワップはコストが実装する側も使う側も安いからな。あれば便利な命令だな。

249 :ナイコンさん:2016/08/28(日) 19:10:54.13 .net
>>245
> 実際AVRでも任意bitシフトなくて4bitスワップつけてくれてるからいろいろ助かるわけで

「いろいろ助かる」って例えばどんなん? 3つでいいから例挙げてちょ

250 :ナイコンさん:2016/08/28(日) 19:11:04.38 .net
>>247
馬鹿なの?

251 :ナイコンさん:2016/08/28(日) 19:15:00.81 .net
>>250
どう考えても馬鹿。

>実際AVRでも任意bitシフトなくて4bitスワップつけてくれてるからいろいろ助かるわけで

252 :ナイコンさん:2016/08/28(日) 19:16:57.72 .net
>>251
こいつすげー馬鹿だw

253 :ナイコンさん:2016/08/28(日) 19:17:50.29 .net
>>247
馬鹿はおまえだと思うぞ。

254 :ナイコンさん:2016/08/28(日) 19:19:33.99 .net
>1語16bitのアーキテクチャ持ち出して

アホかこいつ。

255 :ナイコンさん:2016/08/28(日) 19:20:26.42 .net
馬鹿しか言えないいつもの馬鹿はスルーしろ。

256 :ナイコンさん:2016/08/28(日) 19:21:48.21 .net
> 実際AVRでも任意bitシフトなくて4bitスワップつけてくれてるからいろいろ助かるわけで

具体的な話はできないけど言い張れば勝ちって考えの人かな

257 :ナイコンさん:2016/08/28(日) 19:25:11.38 .net
>>245
> 実際AVRでも任意bitシフトなくて4bitスワップつけてくれてるからいろいろ助かるわけで馬鹿な設計ではないよ。

AVRとZ80じゃ登場した時期が20年くらい違うけど比較になるのかな?

> コンパクトが売りの8bitでトランジスタ使いまくるのは本末転倒だろう。

AVRとZ80でCPU部分の回路規模は同程度という主張ですか?

258 :ナイコンさん:2016/08/28(日) 19:27:32.68 .net
> 実際AVRでも任意bitシフトなくて4bitスワップつけてくれてるからいろいろ助かるわけで

こいつ他のスレで暴れてるトロールだろ。

259 :ナイコンさん:2016/08/28(日) 19:58:46.66 .net
swap nibbles でググると C で書いたサンプルがぞろぞろ出てくるんだからそれなりに需要はあるんじゃね?
なんで不要なものにしたいのかよくわからん

260 :ナイコンさん:2016/08/28(日) 20:27:01.80 .net
>>259
上下ニブル交換の需要があるかじゃなくて、専用命令のそれなんだが
わかってないね?

261 :ナイコンさん:2016/08/28(日) 20:33:14.69 .net
需要があれば専用命令作る奴がいてもおかしくないだろ
バカなのか?

262 :ナイコンさん:2016/08/28(日) 20:35:17.22 .net
>>261
需要の程度を考慮しないで専用命令ってバカそのものでしょ

263 :ナイコンさん:2016/08/28(日) 21:00:24.60 .net
勝手に「需要の程度は専用命令つくるほどは無い」って決め付けて、それを他人に押つけるのがバカでなかったらなんだというのだろうなぁ・・・

264 :ナイコンさん:2016/08/28(日) 21:11:00.02 .net
>>262
>>259 にそこそこ需要がある
って書いてあるのも見えないのかよ
ディスりたいだけだな w

265 :ナイコンさん:2016/08/28(日) 21:14:22.38 .net
>>264
> >>259 にそこそこ需要がある
> って書いてあるのも見えないのかよ

「それなりに需要はあるんじゃね?」とはあるが「そこそこ需要がある」
なんてどこに書いてあんの?
捏造してでも自説を押し通したい人かな?

266 :ナイコンさん:2016/08/28(日) 21:16:27.63 .net
>>245
> 実際AVRでも任意bitシフトなくて4bitスワップつけてくれてるからいろいろ助かるわけで

「いろいろ助かる」って例えばどんなん? 早く例挙げてちょ。3つでいいよ。

267 :ナイコンさん:2016/08/28(日) 21:18:36.34 .net
> 実際AVRでも任意bitシフトなくて4bitスワップつけてくれてるからいろいろ助かるわけで

Z80にあってAVRにない命令もあるし色々ってだけの話だよね。

268 :ナイコンさん:2016/08/28(日) 21:23:23.55 .net
AVRってRISCってことになってるけど

http://www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf

命令表見ると命令の実行サイクルって1から5まで色々であんまRISCっぽくないな。
だったらもっと便利な命令も色々あってよさそうなもんだがなあ、ブロック転送
命令すらないのかw

269 :ナイコンさん:2016/08/28(日) 21:25:14.44 .net
RISCなんてのは「言ったモン勝ち」だろ。
そもそも明確な定義が無いんだし・・・

270 :ナイコンさん:2016/08/28(日) 21:30:46.08 .net
> そもそも明確な定義が無いんだし・・・

最初にRISCと言い出した奴にはこれというものがあった筈だろ。

271 :ナイコンさん:2016/08/28(日) 21:38:10.35 .net
>>265
> 「それなりに需要はあるんじゃね?」とはあるが「そこそこ需要がある」
> なんてどこに書いてあんの?

そこに突っ込む?
てか、そこにしか突っ込めないとか恥ずかしくね? w

272 :ナイコンさん:2016/08/28(日) 21:40:40.91 .net
> そこに突っ込む?

当たり前じゃん。捏造を見逃せと言うの?

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

専用命令の要不要を話してんだから C で書いたサンプルじゃ意味ないだろ。
アセンブリレベルでそういうのやってる例挙げれや。

274 :ナイコンさん:2016/08/28(日) 21:53:31.96 .net
>>272
はいはい、
>>259 にそれなりに需要がある
って言い直せばいいのな

バカみたい

275 :ナイコンさん:2016/08/28(日) 21:54:49.92 .net
>>273
意味がわからん
Cだろうがアセンブラだろうがそう言う機能の需要の話だろ

276 :ナイコンさん:2016/08/28(日) 22:00:20.84 .net
>>274
> >>259 にそれなりに需要がある
> って言い直せばいいのな

「それなりに需要はあるんじゃね?」だね。
捏造してでも自説を押し通したい人であることは確信したよ。

277 :ナイコンさん:2016/08/28(日) 22:01:46.75 .net
子供かよ w

278 :ナイコンさん:2016/08/28(日) 22:02:06.19 .net
>>275
> Cだろうがアセンブラだろうがそう言う機能の需要の話だろ

仮にそういう話だとすると専用命令が必要かは別の話ということになるが
良いのか?

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回繰り返した方がよっぽどマシだわ。

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

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