樫樹の広場



1行掲示板です。情報提供などありましたらよろしくお願いします。

特に、記事の誤り訂正などは「ほかの方も読める記録が残る」ので、掲示板を推奨します。


長い内容など、メールで連絡を取りたい方は以下のアドレスへ。


各ページの下にも1行掲示板がついていますが、このページではそれら全てを集めて表示しています。

特定ページへの内容への意見は、そちらのページで書いていただけるとありがたいです。


また、日付にリンクがある場合は、そのリンクを辿ることで元ページを見ることが出来ます。

(日付にリンクがないものは、このページで書き込まれた意見です)


作者が怠惰なので、反応は遅いかもしれません。


申し訳ありませんが、現在意見投稿をできない状態にしています

【名無し】 記事のタイトルが「6502 は遅かったのか?」であり、コードサイズはかんけいないので ORG $C000;LDY #100;LDA #0;TAX;JMP SKIP;INCH:;INX;DEY;BEQ EXIT;SKIP:;CLC;LOOP:;ADC TABLE,Y;BCS INCH;DEY;BEQ EXIT;ADC TABLE,Y;BCS INCH;DEY;BEQ EXIT;ADC TABLE,Y;BCS INCH;DEY;BEQ EXIT;ADC TABLE,Y;BCS INCH;DEY;BEQ EXIT;ADC TABLE,Y;BCS INCH;DEY;BNE LOOP;EXIT:;STA >0;STX >1;;ORG $C100;TABLE:;DB $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0E,$0F;DB $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F;DB $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F;DB $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F;DB $40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F;DB $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$5F;DB $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F;DB $70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$7B,$7C,$7D,$7E,$7F;DB $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8A,$8B,$8C,$8D,$8E,$8F;DB $90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9F;DB $A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF;DB $B0,$B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,$BA,$BB,$BC,$BD,$BE,$BF;DB $C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF;DB $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF;DB $E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7,$E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF;DB $F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF (2014-08-02 12:40:15)

【名無し】 6502の高速版のコードサイズが28バイトなので、Z80で同程度のコードサイズが許されるならば若干のループ展開が可能になります。LD HL,0;LD BC,100;LOOP:;ADD HL,BC;DEC C;JR Z,EXIT;ADD HL,BC;DEC C;JR Z,EXIT;ADD HL,BC;DEC C;JR Z,EXIT;ADD HL,BC;DEC C;JR Z,EXIT;ADD HL,BC;DEC C;JP NZ,LOOP;EXIT: で27バイト、2582クロックなので、ファミコンには勝ったことになると思います。 (2014-08-01 18:25:49)

【名無し】 Wikipediaのテキストエディタの項目(http://en.wikipedia.org/wiki/Text_editor)を見ると「One of the earliest full-screen editors was O26, which was written for the operator console of the CDC 6000 series computers in 1967.」とあり、O26の項目(http://en.wikipedia.org/wiki/O26_(text_editor))にもう少し詳しいことが書かれていますが、1970年代半ばのWordMasterやviが世界初のスクリーンエディタである可能性は低いんじゃないでしょうか。 (2014-08-01 10:00:06)

【名無し】 訂正: ジャンプに1wait足すのを忘れてました。11+11+100*(12+5+11)=2822クロックで、ファミコンには僅かに負けます。 (2014-07-31 21:44:23)

【名無し】 jr nz,loop を jp nz,loop にすると更に速くなります。11+11+100*(12+5+10)=2722クロックで、半分のクロック速度のファミコンの1395クロックよりは速いことになりますね。 (2014-07-31 21:39:19)

【m】 ループ内が短すぎてほとんどどうにもなりませんが、ld hl,0; ld bc,100; loop: add hl,bc; dec c; jr nz,loop のほうが少し速い(100から1まで足す,になりますが)。単純に総和を取るんじゃなくて公式 n*(n+1)/2 のほうで比べるとかすれば z80 のほうが速いかも (2014-07-31 21:19:15)

【名無し】 6502の高速版プログラムですが2+3+2+2+3+2+19*(3+3+2+5+2+2)+81*(3+2+5+3)-1+3+3=1395クロックが正しいようです。先の「1357クロック」は、おそらくはキャリーが発生した際のCLCを計算に入れなかったミスっぽい。 (2014-07-31 21:00:06)

【名無し】 Z80に花を持たせるにはメモリのブロック転送などが有効だと思います。Z80ではLDIRで済む程度の処理が6502では案外面倒なことになります。 (2014-07-31 16:59:55)

【名無し】 ご対応ありがとうございます。「Z80 版は、計算したところ残念ながら却って遅くなっていました」とのことですが、XOR A;LD H,A;LD B,100;LOOP:ADD A,B;JP NC,SKIP;INC H;SKIP:DJNZ LOOP;LD L,Aで3113クロックとなり、遅くなってはいないと思います。ちなみに6502版にロジックを合わせてXOR A;LD H,A;LD B,100;JP LOOP;INCH:INC H;DEC B;JR Z,EXIT;LOOP:ADD A,B;JR C,INCH;DJNZ LOOP;EXIT:LD L,Aとすると2900クロックで更に高速化できます。 (2014-07-31 16:51:25)

あきよし】 ご意見ありがとうございます。参考に修正しました。 (2014-07-31 12:59:53)

←最近 32 33 34 35 36 37 38 39 40 41 42 過去→

戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -