アカウント名:
パスワード:
Z80のアセンブラで「こうすれば1バイトへって3クロック高速!」というハンド最適化をやった経験があるのでは?※Hour of Codeで無駄な動きはするが、目的を達成しつつコード数を減らしたことがある
Z80のアセンブラで「こうすれば1バイトへって3クロック高速!」というハンド最適化をやった経験があるのでは?
やってました!「JP使うな、JR使え」ですね。
JP(郵送)じゃなくて(メッセンジャーが)JRで持って行くと、1バイト(メッセンジャー)増えて3クロック(時間)高速になる計算かな(混乱)。
それ、遅くなってるじゃん
私がりらてぃぶと覚えた原因を誰か知りませんか?
ld a,0の代わりに xor aとかが定石でしたね。マシンサイクル数えてやったのはテープインターフェースでしたな最近はビデオ信号を作るのが流行っているようです。隔世。
衝撃を受けたソフトウェア的なビデオ信号生成と言えば、「PICで動かすPONG」 [archive.org]ですね。トランジスタ技術1997年5月号掲載だからもう20年前か…
あとは、MZ700用の野球拳 [dti.ne.jp]とか。
いまでもやってるけどね。Z80じゃないけど。
制御装置でも扱う情報量が増えてきて、短い制御周期に対してコピーの時間は馬鹿にならないのですよ。パイプラインまではともかく、スーパースカラを相手にして手作業最適化は無理がありすぎる。
そうは言ってもまだまだコンパイラがお馬鹿なので、効率的なオプティマイズをかけてくれるように人手でソースをチューニングするという作業が面倒#オプティマイズの前提条件が厳しくて、オプティマイズ・レベルの設定をアップすると今まで動いていたプログラムが動かなくなるコンパイラを相手にするのは大変
XOR Aとかですね
この繰り返しは、回数が固定だから、ループじゃなくて回数分列挙した方がいい、とか?メモリは使うけどな
目から鱗だったのは、PC-8801のVRAMクリアで、PUSH HL並べてたやつでした。2バイトロード命令のないZ80ですが、スタック操作は2バイト単位だったので、SPをVRAMにおいてPUSHでクリアするんです。(HLには0を入れておく)たしかに速かった。というか、BASICのCLS命令は冗談みたいに遅かった。(ワールド座標持ってたから、は言い訳だと思う)
Z80とかクソだろ。6809こそ至高。
いーや、HD6309だな。
同志よ!
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
スラド読者ならば! (スコア:0)
Z80のアセンブラで「こうすれば1バイトへって3クロック高速!」というハンド最適化をやった経験があるのでは?
※Hour of Codeで無駄な動きはするが、目的を達成しつつコード数を減らしたことがある
Re:スラド読者ならば! (スコア:2)
やってました!
「JP使うな、JR使え」ですね。
Re:スラド読者ならば! (スコア:1)
JP(郵送)じゃなくて(メッセンジャーが)JRで持って行くと、
1バイト(メッセンジャー)増えて3クロック(時間)高速になる計算かな(混乱)。
-- う~ん、バッドノウハウ?
Re: (スコア:0)
それ、遅くなってるじゃん
Re: (スコア:0)
私がりらてぃぶと覚えた原因を誰か知りませんか?
Re:スラド読者ならば! (スコア:1)
ld a,0の代わりに xor aとかが定石でしたね。
マシンサイクル数えてやったのはテープインターフェースでしたな
最近はビデオ信号を作るのが流行っているようです。
隔世。
Re: (スコア:0)
マイコンで処理をさせつつビデオ信号を作る余裕があるとは想像していなかった
メモリオーダリングを知らない人がPowerPCボードを作って大量のnopを入れていたりと、あの雑誌ではアマチュアの良いところ悪いところが極端な形で見られました
Re:スラド読者ならば! (スコア:1)
衝撃を受けたソフトウェア的なビデオ信号生成と言えば、「PICで動かすPONG」 [archive.org]ですね。トランジスタ技術1997年5月号掲載だからもう20年前か…
あとは、MZ700用の野球拳 [dti.ne.jp]とか。
Re:スラド読者ならば! (スコア:1)
いまでもやってるけどね。Z80じゃないけど。
制御装置でも扱う情報量が増えてきて、短い制御周期に対してコピーの時間は馬鹿にならないのですよ。
パイプラインまではともかく、スーパースカラを相手にして手作業最適化は無理がありすぎる。
Re: (スコア:0)
そうは言ってもまだまだコンパイラがお馬鹿なので、効率的なオプティマイズをかけてくれるように人手でソースをチューニングするという作業が面倒
#オプティマイズの前提条件が厳しくて、オプティマイズ・レベルの設定をアップすると今まで動いていたプログラムが動かなくなるコンパイラを相手にするのは大変
Re: (スコア:0)
XOR A
とかですね
Re: (スコア:0)
この繰り返しは、回数が固定だから、ループじゃなくて回数分列挙した方がいい、とか?
メモリは使うけどな
Re: (スコア:0)
目から鱗だったのは、PC-8801のVRAMクリアで、PUSH HL並べてたやつでした。
2バイトロード命令のないZ80ですが、スタック操作は2バイト単位だったので、
SPをVRAMにおいてPUSHでクリアするんです。(HLには0を入れておく)
たしかに速かった。というか、BASICのCLS命令は冗談みたいに遅かった。
(ワールド座標持ってたから、は言い訳だと思う)
Re: (スコア:0)
Z80とかクソだろ。6809こそ至高。
Re: (スコア:0)
いーや、HD6309だな。
Re: (スコア:0)
同志よ!