■ このスレッドは過去ログ倉庫に格納されています
8086 vs. Z80 vs. 6809 vs. 6502 その11
- 1 :ナイコンさん:2016/05/05(木) 14:06:04.03 .net
- 8086(8088)・Z80・6809・6502のうち、どのCPU(MPU)が優れているか議論するスレッドです。
CPU(MPU)アーキテクチャや周辺デバイス制御など
基本的に「石」に関連する議論なら、ほぼ何でもアリです。
■過去スレ
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/
6809とZ80
http://bubble2.2ch.net/test/read.cgi/i4004/1008496410/
- 683 :ナイコンさん:2016/07/09(土) 22:18:20.89 .net
- XYレジスタもSレジスタも8bitだからな。元々大容量メモリでの処理を想定していない格安低スペック向けMPU。
- 684 :ナイコンさん:2016/07/09(土) 22:34:55.17 .net
- 今でいう激安ライセンスのARMみたいなものか。
- 685 :ナイコンさん:2016/07/09(土) 23:27:56.43 .net
- メモリマップドI/O方式を採用しているから、70年代当時は
メモリだけで64KBの空間すべて使うとは考えて無かったのかもな。
- 686 :ナイコンさん:2016/07/10(日) 02:26:48.61 .net
- >>682
- 687 :ナイコンさん:2016/07/10(日) 03:44:47.95 .net
- youtube見てると6502はスプライトとかハード支援ないと恐ろしいほどショボイゲームばかりだな。
ゲーム機としては手頃だけどPCとしてはなんか残念な構成だな。日本の8bitPCでは採用されなかった理由はその辺りかな。
- 688 :ナイコンさん:2016/07/10(日) 03:53:12.15 .net
- インデクスレジスタが2本ないCPUはゴミ
シューティングゲーム作ると6502の優秀さとZ80のゴミさがよくわかる
- 689 :ナイコンさん:2016/07/10(日) 04:19:09.95 .net
- Z80にインデックスレジスタにつかえるのは2本以上あるだろwww
ある無いだけでいうならゴミでは無いぞwww
- 690 :名無しさん@そうだ選挙に行こう! Go to vote!:2016/07/10(日) 09:03:08.77 .net
- Z80採用のTandy TRS-80 は米国本国のユーザからでさえ、trash 80 と呼ばれていたけどな。
ゴミ。
- 691 :名無しさん@そうだ選挙に行こう! Go to vote!:2016/07/10(日) 09:24:39.51 .net
- CP/M使うために、Z80ボードなんてもの指してたゴミPCのくせに。
- 692 :名無しさん@そうだ選挙に行こう! Go to vote!:2016/07/10(日) 09:29:47.99 .net
- TRS-80がゴミ扱いされる理由が「インデックスレジスタの本数」なのか、へぇ〜(嘲笑
おれはてっきり全体的にお粗末過ぎるハードやOSのせいだと思ってたぜ。
- 693 :名無しさん@そうだ選挙に行こう! Go to vote!:2016/07/10(日) 11:28:57.62 .net
- ただのダジャレだろw
- 694 :名無しさん@そうだ選挙に行こう! Go to vote!:2016/07/10(日) 12:03:06.88 .net
- 同じインデックスレジスタでも
Z80だと
LD IX,TABLE
LD A,(IX+1)
6502だと
LDX #1
LDA TABLE,X
である意味正反対の別物なんだよな。
6809だと16ビットレジスタ+5,8,16ビットオフセットなので
LDX #TABLE
LDA 1,X
と
LDX #1
LDA TABLE,X
のどっちも行けるけど、普通は
LEAX TABLE,PCR
LDA 1,X
と書くかな。
- 695 :名無しさん@そうだ選挙に行こう! Go to vote!:2016/07/10(日) 13:47:37.89 .net
- ゴミ-80は駄洒落だけど、モデルIのデキが酷かったってのもあるだろ。
- 696 :名無しさん@そうだ選挙に行こう! Go to vote!:2016/07/10(日) 13:48:35.68 .net
- 可哀相なキチガイには、駄洒落はまったく理解できないんだよwww
- 697 :名無しさん@そうだ選挙に行こう! Go to vote!:2016/07/10(日) 17:43:28.20 .net
- シミュレーション系は6502よりZ80のほうが向いてんじゃね?
- 698 :名無しさん@そうだ選挙に行こう! Go to vote!:2016/07/10(日) 17:57:38.95 .net
- 6809人気ねーな。
- 699 :名無しさん@そうだ選挙に行こう! Go to vote!:2016/07/10(日) 18:36:07.29 .net
- >>698
86 もそうだけど工夫しがいがないからな
- 700 :ナイコンさん:2016/07/10(日) 21:34:08.14 .net
- 工夫し甲斐がないというか、6809だしたらそれで他のCPUの出番が無いからだろ。
- 701 :ナイコンさん:2016/07/11(月) 00:41:08.23 .net
- >>683
6800の子孫HCS08も6809の子孫STM8もインデックスレジスタは8bitだから8bitが正解
16bitレジスタ持っていてもメモリにアドレス入れる6502より圧倒的に遅い6800はいらない子
- 702 :ナイコンさん:2016/07/11(月) 02:16:56.11 .net
- > 6800の子孫HCS08も6809の子孫STM8もインデックスレジスタは8bitだから8bitが正解
ニワカw
- 703 :ナイコンさん:2016/07/11(月) 03:26:53.08 .net
- http://www.nxp.com/files/microcontrollers/doc/ref_manual/HCS08RMV1.pdf
> 6.2.2 Index Register (H:X)
> This 16-bit index register is actually two separate 8-bit registers
> (H and X). The indexed addressing modes use H:X as a 16-bit base
> reference pointer and variations of indexed addressing allow an
> instruction-supplied 16-bit offset, 8-bit offset, or no offset.
> Other variations of indexed addressing automatically increment
> the 16-bit index register after the index is used to access a
> memory operand.
https://en.wikipedia.org/wiki/Freescale_68HC08
> HC08's are fully code-compatible with their predecessors,
> the Motorola 68HC05. Like all Motorola processors that share
> lineage from the 6800, they use the von Neumann architecture
> as well as memory-mapped I/O. This family has five CPU registers
> that are not part of the memory. One 8-bit accumulator A,
> a 16-bit index register H:X, a 16-bit stack pointer SP,
> a 16-bit program counter PC, and an 8-bit condition code register
> CCR. Some instructions refer to the different bytes in the
> H:X index register independently.
- 704 :ナイコンさん:2016/07/11(月) 03:32:26.37 .net
- http://www.st.com/content/ccc/resource/technical/document/programming_manual/43/24/13/9a/89/df/45/ed/CD00161709.pdf/files/CD00161709.pdf/jcr:content/translations/en.CD00161709.pdf
> Index registers (X and Y)
> These 16-bit registers are used to create effective addresses
> or as temporary storage area for data manipulations.
> In most of the cases, the cross assembler generates a PRECODE
> instruction (PRE) to indicate that the following instruction
> refers to the Y register. Both X and Y are automatically
> saved on interrupt routine branch.
https://en.wikipedia.org/wiki/STM8
> Architecture
> The STM8 has some similarities to the earlier ST7, but is
> better suited as a target for C due to its stack pointer-relative
> addressing mode. There is an 8-bit accumulator A and
> 16-bit registers X and Y, which are mostly used as index registers.
- 705 :ナイコンさん:2016/07/11(月) 07:02:52.53 .net
- >>694
> LD IX,TABLE
> LD A,(IX+1)
> LDX #TABLE
> LDA 1,X
インデックスと言うよりベースレジスタとかポインターだな
- 706 :ナイコンさん:2016/07/11(月) 10:43:00.55 .net
- IX/IYはあんま使わなかったな
たいがい裏レジスタでどうにかなったし
- 707 :ナイコンさん:2016/07/11(月) 11:21:14.75 .net
- とりあいず裏って言っとけばカッコいいと思ってる小学生
- 708 :ナイコンさん:2016/07/11(月) 12:05:27.11 .net
- レジスタ足りなくなってどうしてもって時でもなければIX/IY使わないっしょ。
- 709 :ナイコンさん:2016/07/11(月) 13:45:12.99 .net
- > レジスタ足りなくなってどうしてもって時でもなければIX/IY使わないっしょ。
「データ構造」という概念を理解してない奴が言いそう↑
- 710 :ナイコンさん:2016/07/11(月) 14:40:47.81 .net
- IX/IYは使いこなすのが難しいよね、
大抵は使わないほうが速い、さらには小さいコードになったりするから…
- 711 :ナイコンさん:2016/07/11(月) 16:58:19.65 .net
- LD IX, DATATOP ; 4byte 14clk
LD A, (IX + DATA1) ; 3byte 19clk
LD A,(DATATOP + DATA1) ;3byte 13clk
うーむ……
- 712 :ナイコンさん:2016/07/11(月) 17:11:08.25 .net
- IX/IY使うのはバカ。
根拠なく言われてないよね。
- 713 :ナイコンさん:2016/07/11(月) 17:52:51.83 .net
- LD IX, DATATOP
LD DE, DATASIZE
LD B, 100
LOOP: PUSH BC
LD A, (IX + DATA1)
LD B, (IX + DATA2)
LD C, (IX + DATA3)
CALL HOGERA
ADD IX, DE
POP BC
DJNZ LOOP
LD HL, DATATOP
LD B, 100
LOOP: PUSH BC
LD DE, DATA1
ADD HL, DE
LD A, (HL)
LD DE, DATA2 - DATA1
ADD HL, DE
LD B, (HL)
LD DE, DATA3 - DATA2
ADD HL, DE
LD C, (HL)
CALL HOGERA
LD DE, DATASIZE - DATA3
ADD HL, DE
POP BC
DJNZ LOOP
- 714 :ナイコンさん:2016/07/11(月) 18:22:56.33 .net
- トップアドレスがころころ変わるor複数点在する&データサイズすら可変&でもデータ位置が飛び飛び&それでもデータの相対位置は固定
設計悪すぎじゃね?
- 715 :ナイコンさん:2016/07/11(月) 18:44:17.08 .net
- 挙げられた例がプログラム全体とも限らないのに変な決めつけをしてでもなんか言いたいというのはわかったw
- 716 :ナイコンさん:2016/07/11(月) 19:06:12.45 .net
- IX馬鹿にゃ分からんのかもな
お前のことはHと読んでやろう
○の中に9で、読み方は
- 717 :ナイコンさん:2016/07/11(月) 19:16:24.76 .net
- 8ビットに限らんが、アッセンブラ前提なら変な構造化したデータなんぞメモリにおかないしね。
単純に複数のテーブルに展開しておく。
そのほうがロジック見通し良くなるし、速度も速くなる。
- 718 :ナイコンさん:2016/07/11(月) 19:21:09.37 .net
- > 8ビットに限らんが、アッセンブラ前提なら変な構造化したデータなんぞメモリにおかないしね。
アセンブラで書くことが目的になってる素人の発想だね。
- 719 :ナイコンさん:2016/07/11(月) 19:27:51.64 .net
- > そのほうがロジック見通し良くなるし、速度も速くなる。
プログラムの部分部分による処理時間の評価ができない馬鹿は近視眼的な
最適化に拘る傾向があるな。
- 720 :ナイコンさん:2016/07/11(月) 19:28:25.98 .net
- 自称玄人乙。
無駄に複雑で遅くてバグリーなコード書いて俺すげーしててね。
- 721 :ナイコンさん:2016/07/11(月) 19:29:37.42 .net
- >>717
じゃあそういう前提で>>713のプログラム書き直してみ?
- 722 :ナイコンさん:2016/07/11(月) 19:30:27.62 .net
- そもそもIX/IYに拘る辺りに既に馬鹿丸出しでございますからw
- 723 :ナイコンさん:2016/07/11(月) 19:30:56.26 .net
- 実務経験ないんだろうね。
- 724 :ナイコンさん:2016/07/11(月) 19:33:24.71 .net
- >>720
有益に単純で速くて信頼性の高いコードの例はやく書いて見せてちょw
- 725 :ナイコンさん:2016/07/11(月) 19:36:21.72 .net
- 具体的な例挙げてる人に喚いてるだけの人が絡んでる格好w
- 726 :ナイコンさん:2016/07/11(月) 19:38:09.87 .net
- >喚いてるだけの人が絡んでる格好
プログラム書ける人に対してなんか変なコンプレクスでもあるんだろう。
- 727 :ナイコンさん:2016/07/11(月) 19:42:38.65 .net
- まぁCでも使ってればいいんじゃない?
効率も速度も度外視で目的の動作を実現出来ればいいだけの実務さんはw
- 728 :ナイコンさん:2016/07/11(月) 19:45:54.08 .net
- IXを使ったほうがソースが読みやすくなる
しかし使うか使わないかで明らかにスピードに差がある
最初は「たかが数クロックの違いだろー」と思ってたが
わずかなスピード差が気になる「ゲーム」って特殊なシステムだと
使った場合、使ってない場合、両方でプログラム組んで比べると
「IXを使っている方が明らかに遅い」って体感できるくらいなんだよな
- 729 :ナイコンさん:2016/07/11(月) 19:47:29.89 .net
- 処理の大半はCで、負荷の大きい部分はアセンブラでというのは
開発効率と実行効率の両方のバランスを考えれば普通に出てくる
発想だが、実務経験のない奴はその辺のトレードオフとか理解の
外なのかも。
- 730 :ナイコンさん:2016/07/11(月) 19:48:05.03 .net
- 昔の知識のまま固まってる爺だろ
https://msdn.microsoft.com/ja-jp/library/tydf8khh.aspx
- 731 :ナイコンさん:2016/07/11(月) 19:49:40.01 .net
- >>728
>>719で既に言われてるよ。
- 732 :ナイコンさん:2016/07/11(月) 19:52:27.51 .net
- 実務経験のない奴は「要求仕様」という概念がないから
「速ければ速いほど良い」みたいな馬鹿な発想をするのだろう。
- 733 :ナイコンさん:2016/07/11(月) 19:54:41.06 .net
- IX/IYは使わない派による>>713への具体的な反論が見たいw
つかそれがない限りは口だけ番長だわ。
- 734 :ナイコンさん:2016/07/11(月) 20:02:39.22 .net
- z80アセンブラ書いてた頃はまだ中一でした。実務経験ある方はもう70過ぎてんじゃないでしょうか。
- 735 :ナイコンさん:2016/07/11(月) 20:31:54.49 .net
- >>711
これはいくらなんでも例が悪すぎw インデックスドアドレッシングはローカル変数のアクセスとか、
動的に確保したデータ領域へのアクセスとか、大抵そういうときに使うもんじゃないかと。
何にせよ、Z80でインデックスドアドレッシングは辛いわな
LD r,(IX+d) 4CLKx2+3CLK+5CLK+3CLK=19CLK
2バイトコードだから4CLKも食うM1サイクルを2回、ディスプレースメントを読み込むのに3CLK、
次いでアドレス計算(16bit加算)に5CLKw、やっとこさ最後にデータ読み込み3CLK。
命令のフェッチですでに相当酷いことになってる上に、4bitALUがトドメを刺すというね。
- 736 :ナイコンさん:2016/07/11(月) 20:57:38.30 .net
- >>734
まだ現役で使ってて新規開発もある業界もあるみたいだし年齢なんてわからんだろ
- 737 :ナイコンさん:2016/07/11(月) 21:01:25.08 .net
- ケチつけるだけで、自身が理想とする模範解答たるべきソースコードは絶対に出さないよなwww
- 738 :ナイコンさん:2016/07/11(月) 21:24:23.69 .net
- Z80の新規案件ってパチ屋が圧倒的(偏見)だろwww
現役を御勇退あそばされて天下りしました、な元公務員のわからんちんを相手にするオシゴトwww
下っ端のプログラマがあいてにすることはまず無いけどさwww
- 739 :ナイコンさん:2016/07/11(月) 21:24:45.60 .net
- >>737
教条的に「IX/IYは遅い」と妄信してるだけだからだろwww
- 740 :ナイコンさん:2016/07/11(月) 21:25:20.60 .net
- >>737
毎度のことだろ。
- 741 :ナイコンさん:2016/07/11(月) 21:25:41.32 .net
- ぶっちゃけZ80にIX/IYは要らない。
- 742 :ナイコンさん:2016/07/11(月) 21:26:28.68 .net
- >>713
無駄すぎて何をしたいのかわからない
- 743 :ナイコンさん:2016/07/11(月) 21:28:09.70 .net
- >>738
> 下っ端のプログラマがあいてにすることはまず無いけどさwww
ツイッターで検索すると新人(=下っ端)にZ80てのは現代でもあるみたいだぞ。
https://twitter.com/search?q=z80%20%E6%96%B0%E4%BA%BA&src=typd
もちろんパチ屋も含まれてはいるだろうがそれだけではないようだ。
- 744 :ナイコンさん:2016/07/11(月) 21:28:58.65 .net
- >>742
はいはい馬鹿はひっこんでてね
- 745 :ナイコンさん:2016/07/11(月) 21:30:05.48 .net
- よっぽど馬鹿がコード書けば別だけど、普通はIX/IYは使わんよなぁ。
クロック浪費がすくなきゃ使ってもいいけど、使っただけで足引っ張るし。
- 746 :ナイコンさん:2016/07/11(月) 21:31:29.49 .net
- 「何をしたいのかわからない」くせに「無駄すぎ」と言える不思議w
- 747 :ナイコンさん:2016/07/11(月) 21:32:42.52 .net
- > よっぽど馬鹿がコード書けば別だけど、普通はIX/IYは使わんよなぁ。
> クロック浪費がすくなきゃ使ってもいいけど、使っただけで足引っ張るし。
プログラム組んだことないことは分かったw
- 748 :ナイコンさん:2016/07/11(月) 21:49:10.98 .net
- >>713
まずCALL HOGERAが無駄
- 749 :ナイコンさん:2016/07/11(月) 21:52:59.40 .net
- > まずCALL HOGERAが無駄
展開しろとでも言うんだろうか?
HOGERA の内容もわからんところで「無駄」と言い切れる辺りそうとうの馬鹿と見た。
- 750 :ナイコンさん:2016/07/11(月) 21:55:21.93 .net
- > まずCALL HOGERAが無駄
これだけでコイツに実務経験がないのは想像がつく。
他所が作成したモジュールでサブルーチン呼び出しせざるを得ない場合なんて当たり前にあるのにね。
- 751 :ナイコンさん:2016/07/11(月) 21:57:40.20 .net
- 実際のコードだと使うデータが順番に並んでいて直前に読み出したアドレスに書き戻すことが多いから
(HL)でアクセスしてINCやEXXでちまちまやる方が速いんだよな
- 752 :ナイコンさん:2016/07/11(月) 21:57:43.93 .net
- >>748
> まずCALL HOGERAが無駄
えっ!どうして?!
- 753 :ナイコンさん:2016/07/11(月) 21:59:15.92 .net
- >実際のコードだと使うデータが順番に並んでいて直前に読み出したアドレスに書き戻すことが多いから
簡単なプログラムしか組んだことない奴のセリフだなあ。
- 754 :ナイコンさん:2016/07/11(月) 22:00:58.54 .net
- HOGERA:
RET
- 755 :ナイコンさん:2016/07/11(月) 22:23:01.43 .net
- DATA1,DATA2,DATA3を連続して配置すれば
LD HL, DATATOP
LD DE, DATA1
ADD HL, DE
LD DE, DATASIZE-2
LD B,100
LOOP: PUSH BC
LD A,(HL)
INC HL
LD B,(HL)
INC HL
LD C,(HL)
CALL HOGERA
ADD HL,DE
POP BC
DJNZ LOOP
で行けるんじゃね?
- 756 :ナイコンさん:2016/07/11(月) 22:28:00.04 .net
- >>745
それなりに便利だぞ
HLが空くしコードも読み易いし遅いといっても大してかわらん
- 757 :ナイコンさん:2016/07/11(月) 22:34:06.96 .net
- >>755
仕様変更が入ったんで対応宜しく。HOGERA が Z 返したら PIYOPIYO 呼べだって。
LD IX, DATATOP
LD DE, DATASIZE
LD B, 100
LOOP: PUSH BC
LD A, (IX + DATA1)
LD B, (IX + DATA2)
LD C, (IX + DATA3)
CALL HOGERA
JR NZ, SKIP
LD A, (IX + DATA1)
LD C, (IX + WDATA4+0)
LD B, (IX + WDATA4+1)
CALL PIYOPIYO
SKIP:ADD IX, DE
POP BC
DJNZ LOOP
- 758 :ナイコンさん:2016/07/11(月) 22:36:12.75 .net
- >>755
> DATA1,DATA2,DATA3を連続して配置すれば
ROMに配置されてるから変更できないんだ。アクセスの際にはオフセットで宜しく。
- 759 :ナイコンさん:2016/07/11(月) 22:40:34.13 .net
- > DATA1,DATA2,DATA3を連続して配置すれば
こういう保守性悪いプログラムは却下。お前が一生担当するつもりか?
- 760 :ナイコンさん:2016/07/11(月) 22:48:47.29 .net
- DATA1,DATA2,DATA3,WDATA4を連続して配置
HOGERAはH,Lの他にA,D,Eレジも保存
PIYOPIYOへの引数はA,D,Eレジ渡しで
LD DE, DATA1
ADD HL, DE
LD B,100
LOOP: PUSH BC
LD A,(HL)
INC HL
LD B,(HL)
INC HL
LD C,(HL)
INC HL
LD E,(HL)
INC HL
LD D,(HL)
CALL HOGERA
CALL Z,PIYOPIYO
LD DE, DATASIZE-4
ADD HL,DE
POP BC
DJNZ LOOP
でいいんじゃね?
- 761 :ナイコンさん:2016/07/11(月) 22:51:14.38 .net
- >>758
はじめから連続配置して焼けマヌケ
- 762 :ナイコンさん:2016/07/11(月) 22:56:28.90 .net
- > DATA1,DATA2,DATA3を連続して配置すれば
> DATA1,DATA2,DATA3,WDATA4を連続して配置
> HOGERAはH,Lの他にA,D,Eレジも保存
> PIYOPIYOへの引数はA,D,Eレジ渡しで
なんか都合よく条件を書き換えて最適化とか抜かしてるのは分かったw
- 763 :ナイコンさん:2016/07/11(月) 22:58:39.05 .net
- 都合悪く書き換える最適化なんて無いからなあ
- 764 :ナイコンさん:2016/07/11(月) 22:58:43.40 .net
- >>760
HOGERAがZ返さなかった場合、PIYOPIYOの引数予め読んでおくのって無駄じゃね?
- 765 :ナイコンさん:2016/07/11(月) 23:01:08.05 .net
- プログラムの構造がデータ構造にべったり沿ってるのってやっぱ保守性が悪いという結論にしかならんな
- 766 :ナイコンさん:2016/07/11(月) 23:09:15.07 .net
- > HOGERAはH,Lの他にA,D,Eレジも保存
> PIYOPIYOへの引数はA,D,Eレジ渡しで
↑を実現するために↓みたいなの書いて、HOGERAとPIYOPIYOの代わりに呼び出すとかだったらなんかもう本末転倒な感じね。
_HOGERA:
PUSH AF
PUSH DE
CALL HOGERA
POP DE
POP AF
RET
_PIYOPIYO:
LD C, E
LD B, D
JP PIYOPIYO
- 767 :ナイコンさん:2016/07/11(月) 23:11:20.98 .net
- むしろデータ構造自体に他からアクセスできるほうが保守性は悪いよ、
用意されたコードを介したアクセスで隠蔽できた方が良い、オブジェクト指向のアクセサみたいな。
- 768 :ナイコンさん:2016/07/11(月) 23:14:01.91 .net
- >>766
POP AF
でZフラグの情報が消えちゃうんでバグりますね。
- 769 :ナイコンさん:2016/07/11(月) 23:16:07.79 .net
- >>767
具体的なコードPLZ
- 770 :ナイコンさん:2016/07/11(月) 23:17:34.95 .net
- >>769
メンドクサイggrks
- 771 :ナイコンさん:2016/07/11(月) 23:22:57.83 .net
- >>768
ご指摘感謝。
_HOGERA:
PUSH AF
PUSH DE
CALL HOGERA
POP DE
INC SP
LD A, (SP)
INC SP
RET
- 772 :ナイコンさん:2016/07/11(月) 23:23:49.59 .net
- > メンドクサイggrks
皆がコード書いてるのに何このカス
- 773 :ナイコンさん:2016/07/11(月) 23:25:14.45 .net
- >>772
というか、
「オブジェクト指向のアクセサみたいな」
をこのスレで解説するのはあきらかにスレ違いだろ?
- 774 :ナイコンさん:2016/07/11(月) 23:26:26.58 .net
- ありゃ、
LD A, (SP)
Z80 でこんな命令はなかったか。
- 775 :ナイコンさん:2016/07/11(月) 23:27:00.58 .net
- >>773
なんで???
- 776 :ナイコンさん:2016/07/11(月) 23:30:03.46 .net
- >>771
LD A, (SP)
なんて命令は無いんじゃね?w
- 777 :ナイコンさん:2016/07/11(月) 23:30:30.91 .net
- 再訂正:
_HOGERA:
PUSH DE
LD D, A
PUSH DE
CALL HOGERA
POP DE
LD A, D
POP DE
RET
- 778 :ナイコンさん:2016/07/11(月) 23:33:03.99 .net
- > 「オブジェクト指向のアクセサみたいな」
> をこのスレで解説するのはあきらかにスレ違いだろ?
それお前どうコーディングすんの?って話を「オブジェクト指向のアクセサの解説」と歪曲してスレ違いということにしたいのかな?
- 779 :ナイコンさん:2016/07/11(月) 23:39:09.27 .net
- > むしろデータ構造自体に他からアクセスできるほうが保守性は悪いよ、
> 用意されたコードを介したアクセスで隠蔽できた方が良い、オブジェクト指向のアクセサみたいな。
アセンブラでC++のprivateメンバみたいのを実現できるのか。どういう書き方するのか興味深いわ。
- 780 :ナイコンさん:2016/07/11(月) 23:45:10.35 .net
- アポロ11号が月面着陸時に使用した誘導プログラムのソースコード公開 やっぱり月に行ったってマジなの
http://hayabusa8.2ch.net/test/read.cgi/news/1468240514/
1 :[Φ|(|´|Д|`|)|🌀] BBxed!! ジャーマンスープレックス(dion軍)@無断転載は禁止2016/07/11(月) 21:35:14.84 ID:iZ/WXXkP0● BE:614796825-PLT(17667) ポイント特典
http://japanese.engadget.com/2016/07/11/github-11-13/#continued
アポロ11号が月面着陸時に使用した誘導プログラムのソースコードが、GitHubで公開されました。誰でも人類初の偉業を成し遂げるのに
貢献したソフトウェアをのぞき見ることができます。
NASAのインターンだったクリス・ギャリー氏が公開したこのアポロ誘導コンピューター(Apllo Guidance Computer : AGC)のソースコードは2009年にGoogleも公開しており、
このときはエミュレーター上で実行できるようにしていました。今回はGitHubでの公開ということもあり、どこで走らせるかは別としてユーザーが自分で編集することも可能です。
海外掲示板サイトRedditのユーザーは、さっそく数千行におよぶソースコードの中にある当時のプログラマーのユーモアを指摘しています。
たとえば月面着陸ルーチンの666行めにある"NUMERO MYSTERIOSO(神秘の数字)"という言葉や、スラスター点火処理の部分に
黒人DJマグニフィセント・モンタギューの「Burn, Baby! Burn!」という名フレーズが発見されるなど、1960年代に思いを馳せつつ2009年のときと同じ話題で盛り上がっているようです。
なお、今回はGitHubでソースコードが公開されたため、だれでも入手し改変することができます。
また、Issuesタブにはアポロ13号で発生した電気回路の問題による酸素タンクの故障と再現方法を報告する輩が現れたり、
「マット・デイモンを助けに行くための拡張パック」が提案されるといったお遊びも展開されています。
- 781 :ナイコンさん:2016/07/12(火) 00:00:47.16 .net
- 52 :ジャーマンスープレックス(新疆ウイグル自治区)@無断転載は禁止 2016/07/11(月) 22:59:47.01 ID:JNXalgMA0
https://github.com/chrislgarry/Apollo-11/
これだな
- 782 :ナイコンさん:2016/07/12(火) 00:08:36.75 .net
- >>778
いやもっとも単純なコードだけなら
LD IX,DATATOP
CALL GETDATA1
GETDATA1:
LD A,(IX+DATA1)
RET
とかになるのはほぼ自明なんだけど、こんなものさらしても何の意味もなかろう?
アクセサは構造体の内部構造を外部に対して非公開にすることで、
構造体の内部構造が(物理的にも論理的にも)変化しても外部のプログラムに影響が出ないようにする仕組み。
例えばDATA1が内部の仕様変更でDATA1_1、DATA1_2と二つの値に分割され、
従来のDATA1はDATA1_1+DATA1_2に相当する場合。
GETDATA1:
LD A,(IX+DATA1_1)
ADD A,(IX+DATA1_2)
RET
とすることで、呼び出し側のプログラムに影響を与えずに済むようになる。
- 783 :ナイコンさん:2016/07/12(火) 00:12:32.06 .net
- そもそもこんなサブルーチンは必要なかった
総レス数 1002
237 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200