■ このスレッドは過去ログ倉庫に格納されています
68k v.s. x86 Round 3
- 1 :ナイコンさん:2016/03/20(日) 14:15:55.28 .net
- 16Bitパソコン時代のMPU/CPU 68kとx86を語るスレです。
68020,386以降の32BitやZ8kや658xxの話題もOKです。
過去スレッド
68k v.s. x86 Round 2
http://hanabi.2ch.net/test/read.cgi/i4004/1455196631/
68K v.s. x86
http://hanabi.2ch.net/test/read.cgi/i4004/1220728356/
- 670 :ナイコンさん:2016/05/19(木) 06:06:13.62 .net
- > セグメントレジスタ長を32bitなり64bitにすればよかったのに
メモリアドレスを20ビット以上にするという主旨のようだが、セグメントレジスタを24ビットや32ビットにしてもセグメントリミットが16ビットのままだったら何の改良にもならんぞ。
- 671 :ナイコンさん:2016/05/19(木) 07:02:57.65 .net
- >>670
かと言って16bitから増やすぐらいなら一気にフラットにした方がいいしな
モトローラは 68000 で
インテルは 80386 で
やっただけのこと
- 672 :ナイコンさん:2016/05/19(木) 07:12:59.28 .net
- 64kオフセットマンセー信者はバカというよりキチガイだなw
- 673 :ナイコンさん:2016/05/19(木) 07:28:00.92 .net
- >>672
パソコンの初期メインメモリー128kbyte とかの時代のCPU を、そこまでけなす方が気違い。
- 674 :ナイコンさん:2016/05/19(木) 08:17:56.55 .net
- ププッ!
30年経てもアタマが64kの壁を越えられなかったペンペン草ジジイ。
- 675 :ナイコンさん:2016/05/19(木) 11:04:49.29 .net
- 日本マイクロソフト人事部の西川昌邦(さいかわまさくに)は人殺しだ!!
「あなたのような従業員は会社のパフォーマンスにとってマイナスなので早く死んでください」
などと自殺教唆を公然と行った!!
丁寧に言えば何を言ってもいいというものではない!!これはヤクザや借金取りが脅迫をする時に
「いついつまでに金一億円をお振り込みください。間違った判断をなされないことを期待しています」
と発言するのと同じレベルだ!!
「しかもそれを注意してやったら世間はわれわれの味方だ。文句があるなら訴えてきたらよろしい。メールを電番を公開したければ
どうぞご自由に。世論はわれわれを賛辞するするメールを送付するだろう」
などとイカ様気取りも大概にしろという発言を行った!!
抗議先 日本マイクロソフト人事本部 西川昌邦
masaikaw@microsoft.com
090-2541-1718
- 676 :ナイコンさん:2016/05/19(木) 11:51:16.25 .net
- >>647
8086において64KBの壁を越えられなかったのはスキルのないキミであって、
ジジイたちは64KB以上のデータでも普通に8086でも扱えた。
- 677 :ナイコンさん:2016/05/19(木) 13:16:08.90 .net
- 決着が付いたのに人が居なくなってから蒸し返す無能
- 678 :ナイコンさん:2016/05/19(木) 14:38:47.77 .net
- >>647
決着が付いたのに人が居なくなってから蒸し返す無能
- 679 :ナイコンさん:2016/05/19(木) 19:30:12.92 .net
- >>666
>>68000のダメなところ。
>>ビッグエンディアン。
ビッグエンディアンってダメなの?
ビッグエンディアンとリトルエンディアンでどっちがよくてよくてどっちが悪いとかあるの・・・?
例えばどういう理由で?
- 680 :ナイコンさん:2016/05/19(木) 19:38:29.20 .net
- >>679
リトルエンディアンならワード幅が変わってもアドレスが変わらない
型が変わってもポインタの値は変わらない
- 681 :ナイコンさん:2016/05/19(木) 19:51:22.07 .net
- ふむ
アドレスを指すビット長が変わった時に
下位桁を無視するか
上位桁を無視するか、の違いが出てくるわけか
ビッグエンディアンだと桁がズレちゃうわけね
ありがとう 勉強になりました
だから68系のmacがsystem6からsystem7(の初期バージョン)に変わった時に
24bitアドレシングモードと
32bitアドレシングモードの切換えがあったわけか
- 682 :ナイコンさん:2016/05/19(木) 21:06:45.85 .net
- 68kは最初に「限界はここまで」って決めてから設計してる。
喩えるなら「ガワだけ作って中身はテナント任せにするビル」で、最初に決めたサイズを超えるには大変。
8086は「8080よりちょっとだけ機能が増えて、ちょっとだけ性能がよくなって」で設計した。
喩えるなら「手狭になった掘っ立て小屋(8080)を建て替えた家」で、土地があるだけ建て増ししていくらでも大きくなれる。
最初から限界を決めてた綺麗な設計の68kと、汚い設計だろうがとにかく広げられるx86とでは最終到達点がぜんぜん違うう。
x86は建て増ししまくった建物のごとく迷路のような構造してるわけで・・・
- 683 :ナイコンさん:2016/05/19(木) 21:26:39.51 .net
- 386はセグメント方式を維持したままページング方式も採用してるのが良いよね。
ページングしかないとユーザプログラムは「ひとつのアドレス空間」しか使えない、なんてことになりかねない(OSというか、モニターの作り方次第といわれればそれまでだけど)。
セグメントが残ってるから「用途別にアドレス空間を区別する」従来の考え方がそのまま拡張して使えたのはでかい。
用途別に空間を分ける、という点においてセグメントは非常に優れた機構だからね。
- 684 :ナイコンさん:2016/05/19(木) 21:52:26.60 .net
- >>676 ←無脳すぎるw
- 685 :ナイコンさん:2016/05/19(木) 21:59:18.27 .net
- >>680
たとえばメモリに格納されてる32bitの値を下位16bitだけ参照するとして
アドレスが同じだからメリットがあると言ってんの?
それじゃあビッグエンディアンでは32bitの値を上位16bit参照する際には
アドレスが同じだからメリットがあるなw
…バカか?
- 686 :ナイコンさん:2016/05/19(木) 22:09:23.04 .net
- リトルエンディアンのほうがキャストするときとか楽じゃん。
- 687 :ナイコンさん:2016/05/19(木) 22:24:33.87 .net
- ちょっとどういうのを楽と言ってるのかサッパリわからんから具体例挙げれ
- 688 :ナイコンさん:2016/05/19(木) 22:37:13.19 .net
- short* p = (short*)pInt; みたいな。ビッグエンディアンってどんな実装されてんの?
- 689 :ナイコンさん:2016/05/19(木) 23:01:30.64 .net
- >>688
どんなっていうか、当たり前に実装されてるだけじゃね?
short* p = (short*)pInt;
ならp == pIntが真になるし、*pの値は*pIntの上位16ビットになるから、
32bitの値の上位16bit参照する際にはリトルエンディアンより有利になるよ。
- 690 :ナイコンさん:2016/05/19(木) 23:05:52.77 .net
- なんというか残念な仕様ですね。
- 691 :ナイコンさん:2016/05/20(金) 00:34:25.85 .net
- >>682
020の時点で4GBリニアアクセス可能だから最初から386相当と言える
単純には比較できないがレジスタは16本だからx64の倍だね
x86からx64に至るような小汚い拡張は要らなかったのさ
- 692 :ナイコンさん:2016/05/20(金) 00:47:21.49 .net
- MMUもついてないのに386相当とはいやはや
- 693 :ナイコンさん:2016/05/20(金) 01:49:10.79 .net
- そうかECじゃない030にしといてくれ
- 694 :ナイコンさん:2016/05/20(金) 03:15:53.12 .net
- > short* p = (short*)pInt; みたいな。ビッグエンディアンってどんな実装されてんの?
えっキャストでポインタの値が変わるとでも思ってんのかな??
- 695 :ナイコンさん:2016/05/20(金) 03:33:07.10 .net
- 68030が68kシリーズの到達点というか終点というか、68kシリーズの完成形になっちゃったからなぁ。
「足りない」のはFPUぐらい。
その発展型の040が商売的に残念な状態だったのがねぇ。
386はIA32の出発点。
「足りない」のはFPUぐらい。 ん?
486以降は、キャッシュのハーバード・アーキテクチャ化だマルチプロセッサ対応だか040の後追いだったが、一番の違いは凄い勢いで高速化したことだな。
PentiumだCoreだってハイエンド向けがバンバン高速化しながらローエンド向けのCeleronも追従してモデルチェンジするとか商売的にも楽しい事になってるし。
- 696 :ナイコンさん:2016/05/20(金) 04:26:13.54 .net
- union {
char c[2];
short s;
} u;
で、 u.s = 0x1234 したときに c[0]に0x12(上位桁)が入ってるとかおかしいだろ。
低位アドレスには下位バイトが入るのが自然だろ。
- 697 :ナイコンさん:2016/05/20(金) 04:52:44.21 .net
- int I=0x12345678;
char c=(char)I;
これがメモリ=レジスタ間の転送命令でおわる(読出しと書込みでサイズが違うが)のと、ローテート命令が入るのと、どっちが「楽」か。
どう考えたって命令の種類が少ないほうだろ?
- 698 :ナイコンさん:2016/05/20(金) 05:17:04.16 .net
- >>694
型変換だけしたもりなのに、ポインタ値は同じでも中身の値が変わってる。バグの温床だわな。
- 699 :ナイコンさん:2016/05/20(金) 05:39:05.06 .net
- IBMのメインフレーム(及び互換機)、モトローラのMC68000(及び後継)、
サン・マイクロシステムズのSPARC等はビッグエンディアンを採用し、
DECのVAX、インテルのx86等はリトルエンディアンを採用している。
ARMアーキテクチャ、トランスメタのCrusoe、ヒューレット・パッカードのPA-RISC、PowerPCなど、
エンディアンを切り替えられるバイエンディアン (bi-endian) のプロセッサも存在する。
ただし稼動CPUを問わずJava仮想マシンについてはビッグエンディアンである。
- 700 :ナイコンさん:2016/05/20(金) 06:09:46.47 .net
- > ただし稼動CPUを問わずJava仮想マシンについてはビッグエンディアンである。
なるほど、Javaがクソなのはそれが理由か!(違
Javaプログラマーがエンディアンを意識できるシーンってあるの?
仕事で使ったこと無いからそこまでツッコンだソース書いたこと無い(書く必要に迫られたことも当然、ない)からわからん。
- 701 :ナイコンさん:2016/05/20(金) 06:59:39.35 .net
- PDP-11のエンディアンは独特であった。16ビットワードはリトルエンディアンで格納される。
すなわち下位バイトがアドレスの小さいほうに格納される。
32ビットワードを構成する2個の16ビットワードは、ビッグエンディアンで格納される。
すなわち上位16ビットワードがアドレスの小さいほうに格納される。
ここで、各16ビットワード内は前述のようにリトルエンディアンである。
PDP-11が非常に一般化したため、この形式を PDPエンディアン と呼ぶことがある。
- 702 :ナイコンさん:2016/05/20(金) 07:54:45.14 .net
- >>697
そのコードでローテート命令が入るようなアホコンパイラは見たことないぞ w
メモリー to メモリーでも
move.b (I のアドレス + 3), (c のアドレス)
の1命令
- 703 :ナイコンさん:2016/05/20(金) 08:57:03.64 .net
- >>697
リトルエンディアン好きが無能という事はわかった
- 704 :ナイコンさん:2016/05/20(金) 09:10:51.58 .net
- ハード設計的に無理があるよな、ビッグエンディアンは。
ダンプしたときに読みやすい以外にメリットが思いつかない。デメリットばかり目に付く。
- 705 :ナイコンさん:2016/05/20(金) 09:36:10.42 .net
- >>704
脳内キャッシュを欠いた赤貧PGだったのね。惨め。
- 706 :ナイコンさん:2016/05/20(金) 10:10:41.08 .net
- 普通にハード設計したらリトルエンディアンになる。
それをビッグエンディアンにしようと言い出した奴はジョブスみたいな技術は理解できないけどおれすげーみたいな勘違い君だろうな。
- 707 :ナイコンさん:2016/05/20(金) 10:30:28.63 .net
- データのメモリの配置が必ずワードアラインになってるならビッグエンディアンでもいいけど
そうじゃないならリトルエンディアンの方が扱いやすいな
- 708 :ナイコンさん:2016/05/20(金) 12:33:55.42 .net
- >>707
ん?逆じゃね?
- 709 :ナイコンさん:2016/05/20(金) 12:41:58.99 .net
- 普通に素直に設計すればリトルになるよ。
素子が真空管やリレーな時代は知らんが。
- 710 :ナイコンさん:2016/05/20(金) 12:44:23.95 .net
- ビッグエンデアンの利点は真面目に、バイト単位でダンプしたリストが読みやすいのひとつだけだからなぁ。
- 711 :ナイコンさん:2016/05/20(金) 12:47:34.08 .net
- そしてリストエンデアンの欠点はバイト単位のダンプが、ビッグのそれと比べれば少しばかり読みにくいというそれだけしかない。
- 712 :ナイコンさん:2016/05/20(金) 13:00:07.26 .net
- 無駄なおマヌケ話だねw
- 713 :ナイコンさん:2016/05/20(金) 13:03:29.48 .net
- >>698
> 型変換だけしたもりなのに、
エンディアンに依存したコード書くお前がマヌケなだけ。
- 714 :ナイコンさん:2016/05/20(金) 13:08:42.54 .net
- >>708
ビッグエンディアンでアラインがめちゃくちゃだと
例えば下位バイトのポインタが型によって違うとかになるから
8bit値だろうが32bit値だろうが必ず32bitアラインで配置してあればいいけど
- 715 :ナイコンさん:2016/05/20(金) 13:37:49.57 .net
- SHIFT-JISコードの処理をするときに
リトルだとバイトスワップが必要だったのが気になった(というか違いを感じた)くらいかな。
それ以外はリトルでもビッグでも違いは無い気がする。
- 716 :ナイコンさん:2016/05/20(金) 14:33:30.49 .net
- ワイド文字コードとかRGBAとかがひっくり返るのが罠
バイトワードを混在させる場合はビッグエンディアンのほうがやりやすいよね
- 717 :ナイコンさん:2016/05/20(金) 15:55:45.82 .net
- >>706
ハード設計したことのない無能の妄想乙
- 718 :ナイコンさん:2016/05/20(金) 20:07:40.23 .net
- 文字列みたいなバイトストリームはビッグもリトルも手間はたいして違わないだろ。
- 719 :ナイコンさん:2016/05/20(金) 20:18:25.24 .net
- ポインタ経由でサイズの違う型にキャストして中身壊れんリトルと、壊れることもあるビッグと、どっちが優れてるか一目瞭然。
- 720 :ナイコンさん:2016/05/20(金) 21:24:09.71 .net
- たとえば渡されたポインタの値をそのまま返すだけの
void* func(int *i)
{
return i;
}
なんて関数がある。
これで
int i=0x12345678;
printf(
- 721 :ナイコンさん:2016/05/20(金) 21:49:46.57 .net
- > ポインタ経由でサイズの違う型にキャストして中身壊れんリトルと、壊れることもあるビッグと、どっちが優れてるか一目瞭然。
↑キャストを理解してない模様
- 722 :ナイコンさん:2016/05/20(金) 22:01:11.50 .net
- >>713
エンディアンに依存しないコード書いてるアホなんているの?
それっていつも処理系依存しないコード書いてるってことでしょ。
テスト環境もない処理系のためにコード書いてもテストできない。
つまりキミはいつもそんな未テストコードを含んだものをリリースしてるのかい?
- 723 :ナイコンさん:2016/05/20(金) 22:18:29.97 .net
- >>722
例えば32ビット値を8ビット×4でアクセスする場合、
ポインタのキャストやunionを使うとエンディアン依存になるけど、
真っ正直にシフトと&を使えばエンディアンに依存しなくなる。
そういうことを言ってるんじゃないかな?
- 724 :ナイコンさん:2016/05/21(土) 00:54:26.41 .net
- >>722
処理系依存しないコードはむしろテスト環境を選ばないんだが?
- 725 :ナイコンさん:2016/05/21(土) 01:23:21.93 .net
- 未だにそんなファンタジーなこと言われてもな。
Javaで散々、Write Once, Debug Everywhere. って言われてたのに。
Cのライブラリでさえ、ビッグエンディアンとリトルエンディアンで微妙に挙動が違う。
テストしないで想定どおり動くとか妄想にすぎない。神にでもなったつもりか。
- 726 :ナイコンさん:2016/05/21(土) 01:28:06.71 .net
- > テストしないで想定どおり動くとか妄想にすぎない。
このスレで誰かそんなこと言ってるかな?
- 727 :ナイコンさん:2016/05/21(土) 01:30:24.89 .net
- エンディアンに依存したコードを日常的に書いてる人はテストの効率も悪そう。
書いてるソースもキャストとか使いまくってそう。
- 728 :ナイコンさん:2016/05/21(土) 01:31:39.93 .net
- >>726
おまえだよw
- 729 :ナイコンさん:2016/05/21(土) 03:25:38.42 .net
- >>728
藁人形論法とはお里が知れますねw
- 730 :ナイコンさん:2016/05/21(土) 03:48:36.08 .net
- 結局「リトルエンディアン信者は低脳」という事実を証明し続けてるんだよなあ
- 731 :ナイコンさん:2016/05/21(土) 03:58:30.60 .net
- すげー。ビッグエンディアンを肯定してる人がまだこの世にいたんだ。前世紀に絶滅したと思ってたよ。
- 732 :ナイコンさん:2016/05/21(土) 05:32:58.44 .net
- そもそも >>722 の論理が意味不明
処理系依存しないコードを実際に使う処理系でテストして出すだけだろ?
- 733 :ナイコンさん:2016/05/21(土) 05:34:08.43 .net
- すげー。エンディアンにこだわってる人がまだこの世にいたんだ。前世紀に絶滅したと思ってたよ。
- 734 :ナイコンさん:2016/05/21(土) 06:01:03.30 .net
- >>727
ネットワーク系とデバイスドライバは、どうやっても、エンディアンに依存するだろ。
- 735 :ナイコンさん:2016/05/21(土) 06:04:44.08 .net
- >>732
つまりテストするまで依存してるかしてないか分からない。
でも本人は依存してないコードを書いてると思ってる。そういうのを妄想って言うんだよ。
- 736 :ナイコンさん:2016/05/21(土) 06:05:02.30 .net
- ビッグエンディアン信者はキチガイってよくわかるスレだwww
ビッグエンディアンなんて利点なんて何ひとつ無いのになぁ。
この世にビッグエンディアンが生まれたのは「ハード屋がソフトのことをまったく考えないで手抜き設計した結果」「設計者の自慰」とか言っても過言じゃないだろ。
- 737 :ナイコンさん:2016/05/21(土) 06:20:39.36 .net
- エンディアン、嘘つかない。
玉子は真ん中から食べる
- 738 :ナイコンさん:2016/05/21(土) 06:27:06.61 .net
- >>737
ラピュータ人もびっくり!
真ん中からってことはレジスタで0x12345678をメモリに置くと0x34 0x56 0x12 0x78 とか、0x56 0x12 0x34 0x78 見たいになるのかな。
- 739 :ナイコンさん:2016/05/21(土) 07:58:04.40 .net
- このスレに粘着してる86上げ68下げ君は無能過ぎて86のネガキャンになってるからもうやめとけw
- 740 :ナイコンさん:2016/05/21(土) 07:59:36.85 .net
- マカーと言ってることが似てるw
- 741 :ナイコンさん:2016/05/21(土) 08:13:07.52 .net
- >>735
ますます意味不明 w
> つまりキミはいつもそんな未テストコードを含んだものをリリースしてるのかい?
まあとりあえず、これにごめんなさいするところから始めようか
- 742 :ナイコンさん:2016/05/21(土) 08:31:46.07 .net
- 技術的な反論は一切なく、罵倒し、謝罪しろ。隣国の方ですね。
- 743 :ナイコンさん:2016/05/21(土) 08:54:56.38 .net
- 386はフラットメモリになったんじゃなくて、セグメントリミット取っ払ったんだよ。
んで、セグメントが変わると別なマックス4Gの空間にアクセスする。
見た目はメッッチャ広いメモリ空間。
なんで286ん時にセグメントディスクリプタを32ビットにしておかなかったんだろうなー。
予約領域とか言ってても32ビットで使うって決めてあったんだろうし。
- 744 :ナイコンさん:2016/05/21(土) 09:00:06.98 .net
- ビッグエンディアンの技術的な利点が全く書かれてないな。
でもリトルエンディアンを貶すことだけは忘れないのw
- 745 :ナイコンさん:2016/05/21(土) 09:01:36.12 .net
- 間違ったことを言ったんだから訂正しなよ
ってだけのこと
小学生でもわかる話
- 746 :ナイコンさん:2016/05/21(土) 09:53:42.11 .net
- >>734.744
TCP/IPネットワークでは、エンディアンの異なるコンピュータ間での通信を可能とするため、
パケットなどに含まれる多バイトデータはビッグエンディアンに統一することと決められている。
これをネットワークバイトオーダという。これに対し、それぞれのコンピュータ上での
エンディアンのことをホストバイトオーダという。
- 747 :746:2016/05/21(土) 10:30:52.57 .net
- ちなみに、Intelが強く絡んでたUSBは規格的にリトルエンディアン基準だねw
- 748 :ナイコンさん:2016/05/21(土) 10:31:42.43 .net
- ネットが遅いのはモトローラのせいか!!!
- 749 :ナイコンさん:2016/05/21(土) 10:32:08.31 .net
- >>746
通信で受信する側がアドレスの上位から受け取る利点は良く判る。
特にハブ見たいな中継装置はアドレス部分を受信した時点で後続データ受信中でも転送先が決定できてスループット向上につながったりするから。
でもそれは「装置間のデータ通信」での利点で、CPUのレジスタとメモリの間の話じゃないぞ。
- 750 :746:2016/05/21(土) 10:35:14.72 .net
- もう一個、Appleが強く絡んでいたfirewire(IEEE1394)はビッグエンディアン基準。
この種の規格は原開発会社の意向が強く反映しちゃうわけです。
- 751 :ナイコンさん:2016/05/21(土) 10:40:37.08 .net
- 通信はヘッダから送るんだから、アドレスがビッグでもリトルでもスループット変わらないんじゃないのか。
- 752 :ナイコンさん:2016/05/21(土) 10:45:37.49 .net
- >>749
> でもそれは「装置間のデータ通信」での利点で、CPUのレジスタとメモリの間の話じゃないぞ。
リトルエンディアン固定頭のIntel cpuでビッグエンディアン変換処理が手間でロスタイムを
生じるのは技術仕様だから仕方ないことだろうね。8080/8086が特権命令やオペランドで
エンディアン指定できたりしていればより汎用性が高まっていたかもしれんね。
- 753 :ナイコンさん:2016/05/21(土) 10:47:57.66 .net
- >>751
パケットとは何であるか。今からでも学習した方がいいと思うよ。
- 754 :ナイコンさん:2016/05/21(土) 10:58:01.41 .net
- >>753
ネスペなら持ってるで。
- 755 :ナイコンさん:2016/05/21(土) 11:10:56.11 .net
- 日本マイクロソフト人事本部シニアマネージャー(名ばかり管理職)の西川昌邦(さいかわまさくに)は犯罪者にして殺人犯だ!!
「あなたのような従業員は会社のパフォーマンスにとってマイナスなので早く死んでください」
などと自殺教唆を公然と行った!! その結果人が死んだ!!
丁寧に言えば何を言ってもいいというものではない!!これはヤクザや借金取りが脅迫をする時に
「いついつまでに金一億円をお振り込みください。命が惜しければ間違った判断をなされないことを期待します」
と発言するのと同じレベルだ!!
しかもそれを注意してやったら、「世間はわれわれの味方だ。文句があるなら訴えてきたらよろしい。メールを電番を公開したければ
どうぞご自由に。世論はわれわれを賛辞するするメールを送付するだろう」
などとイカ様気取りも大概にしろという発言を行った!!
抗議先 日本マイクロソフト人事本部 西川昌邦
メール:masaikaw●microsoft.com
(●を@に置き換えて)
電話:09025411718
- 756 :ナイコンさん:2016/05/21(土) 11:18:26.21 .net
- リトルエンディアンの利点なんて多倍長の加減算をより速く実行出来ること位だろ。
下位桁から読み込むから、「読み込み即加減算可能」っていうbusのbit幅やALUのbit幅が
狭い頃の遺物だ。
その点ビッグエンディアンの利点は上位桁から比較できるので「より速く大小判定できる
可能性がある」って位だな。
ビッグエンディアンでも下位桁から上位桁に向けて多倍長データを読めるようにbusコント
ローラを作れば同じことが出来るけど、そんな対応をしたMPUは寡聞にして知らないな。
- 757 :ナイコンさん:2016/05/21(土) 11:22:53.65 .net
- >>751
> アドレス「の上位」部分を受信した時点で
なら変わるんじゃないかな?
そういうプロトコルや実装があるのかは知らんがw
- 758 :ナイコンさん:2016/05/21(土) 11:29:59.30 .net
- >>757
一般的じゃないけどATMの中継機なんかがそうだったはず。
アドレスの割り振りがエリアID、装置IDみたいになってて他のエリア宛だとエリアID受信したらそっちに飛ばすしかけになってる。
固定長データだから出来る芸当やね。
もう20年近く前にNTTの仕事でやったのに記憶の彼方だわ。
「一般教養だ」って言われてそれなりに覚えさせられたはずなんだがなー・・・
- 759 :ナイコンさん:2016/05/21(土) 11:50:57.46 .net
- >>756
とてもわかり易くて合理的だ、サンクス
技術的にはこんなもんでしょ
あとは好み
俺は機械じゃなくて人間だからビッグエンディアン(上位桁から下位桁に向かって意識するやり方)のほうが扱いやすい
- 760 :ナイコンさん:2016/05/21(土) 15:39:18.37 .net
- このスレ的には古すぎてスレチかもしらんけど、こんなのはどうよ
Z80にて
LD HL,3132H
LD (TEXT_VRAM_ADDR),HL ;懐かしきテキストV-RAM上のどこか
これを実行したら画面上には "21" って表示じゃないか?
リトルエンディアンってスリリング
- 761 :ナイコンさん:2016/05/21(土) 16:40:58.25 .net
- >>760
VRAMがビッグエンディアンで並んでたらどうなる?
それに、ビッグエンディアンで書いたら
- 762 :ナイコンさん:2016/05/21(土) 18:42:38.16 .net
- これは楽しいなw
プレーン方式のグラフィックV-RAMで、14dot離れた2個のdotに点を打とうとすると…
or word ptr[si],8001h ; si:V-RAM上のどこか
あれ?
- 763 :ナイコンさん:2016/05/21(土) 20:06:39.61 .net
- >>762
とりあえず
or byte ptr[si],80h ; si:V-RAM上のどこか
or byte ptr[si+1],01h
にして、その後最適化したときに、
; or byte ptr[si],80h ; si:V-RAM上のどこか
; or byte ptr[si+1],01h
or word ptr[si],0180h
として置くかな?w
シフトだと
shr word ptr[si],1 ; si:V-RAM上のどこか
じゃダメで
shr byte ptr[si],1 ; si:V-RAM上のどこか
ror byte ptr[si+1],1
にしないと上手くいかない。
グラフィックV-RAMとビッグエンディアンの親和性はMacintoshが出た頃に良く言われてた気がする。
- 764 :ナイコンさん:2016/05/21(土) 22:09:45.22 .net
- 何を問題にしてるのかさっぱり分からん。
- 765 :ナイコンさん:2016/05/21(土) 22:18:10.97 .net
- ?を多用してるから本人も分かってない。
- 766 :ナイコンさん:2016/05/21(土) 22:18:47.84 .net
- 個人的にはcharだろうがshortだろうがlongだろうが同じアドレスから読むリトルがすっきりしていて良いと考える。
long型からキャストした結果を取り出すとき、charだと+3、shortだと+2とアドレスに補正かける必要があるビッグエンディアンはムダな手間が増えてる間抜けな設計。
VRAMへのアクセスは「CPUに内蔵されてない」から、取り上げるべきではないと思う。
VRAMが許されたらどんなデバイスもOKになってしまうから。
- 767 :ナイコンさん:2016/05/21(土) 22:26:53.12 .net
- WORDアクセス禁止のVRAMにWORDアクセスする方が悪い。
VRAMにはきちんとBYTEアクセスすべき。
- 768 :ナイコンさん:2016/05/21(土) 22:45:03.92 .net
- 別にVRAMそのものじゃなくても、
モノクロビットマップデータとしても良く使われるデータ形式だろ。
- 769 :ナイコンさん:2016/05/21(土) 23:25:33.78 .net
- >>766
>「CPUに内蔵されてない」から
よく分らん理屈だw
- 770 :ナイコンさん:2016/05/22(日) 00:49:43.92 .net
- > WORDアクセス禁止のVRAMにWORDアクセスする方が悪い。
> VRAMにはきちんとBYTEアクセスすべき。
こんなこと言ってる奴がポインタ型のキャストがどうこう言うんだから不思議。
総レス数 1002
239 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200