アセンブラ… (・∀・)イイ!
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG機械語萌え。20 D4 FF FF 50 E8 8A DC FF FF 68 10 20 00 00 8D
45 B4 50 8D 85 B4 FB FF FF 50 6A 00 E8 7B DC FF
FF 8B E5 5D C3 00 00 00 FF FF FF FF 02 00 00 00
0D 0A 00 00 55 8B EC 83 C4 F4 84 D2 74 08 83 C4
F0 E8 82 C4 FF FF 89 4D F4 88 55 FB 89 45 FC 8B
45 FC 83 C0 04 8B 55 F4 E8 2B CD FF FF 8B 45 FC
80 7D FB 00 74 0F E8 B5 C4 FF FF 64 8F 05 00 00
00 00 83 C4 0C 8B 45 FC 8B E5 5D C3 55 8B EC 83
C4 F0 53 33 DB 89 5D F0 84 D2 74 08 83 C4 F0 E8
34 C4 FF FF 89 4D F4 88 55 FB 89 45 FC 33 C0 55
68 61 69 40 00 64 FF 30 64 89 20 8D 45 F0 50 8B
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004名無しさん
NGNG0005デフォルトの名無しさん
NGNGアセンブラ ∽ コンパイラ
アセンブル ∽ コンパイル
0006デフォルトの名無しさん
NGNG無料DLできますか。
0007デフォルトの名無しさん
NGNG----------------- 終了 ------------------
0008デフォルトの名無しさん
NGNG今なら1万5千円で買えるぞ
http://www.borland.co.jp/bcsuite/
DOSのC++コンパイラもついてるからワンダーウイッチにも使えるぞ
0009デフォルトの名無しさん
NGNGどうしても高速化したいときとかに使う物で、
趣味でやるもんじゃねーよ。
やったら最後、地獄にハマるんだなこれが・・・
高水準言語でお気楽に構えている方が正解だぜ。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGCPUは壊れない
しかしメモリメチャクチャ
ハードディスクぐちゃぐちゃってことはよくある
ウイルスより被害大(たった数字が1違っただけなのに〜)
なんてことはざらにある
001513
NGNGハードディスクへアクセスするにはそれなりに敷居があるからね。
0016デフォルトの名無しさん
NGNGHDDにアクセスって、デバイスドライバを書くのでもなければ
結局APIを呼ぶだけなので何が変わるわけでもない
0017デフォルトの名無しさん
NGNG>>16
の言っている程度のことでアセンブラを使うのは間違いである。
0018デフォルトの名無しさん
NGNGそれも速度のためじゃなくてCじゃ書けない処理を行うため。
スーパースケーラーなCPUではパイプラインの動作を人間が
追いきれないので最適化でコンパイラに勝てるなどと思うのは
素人の浅知恵です。
もし、Cをアセンブラで書き直したら早くなったってのは元の
プログラムがダメだったってことだ。
001913
NGNG部分的には最適化されていても、
全体を通してみると完全に最適化されいるわけではない。
アセンプラを使う理由はそこにある。
よってアセンブりコードはある程度複雑さを持っているということは自明であり、
複雑なことをするために相応の危険が伴う。
0021デフォルトの名無しさん
NGNGはじめて読むアセンブラ
なら最近でも入手可能。
http://www.ascii.co.jp/searchA/namazu.cgi?idxname=www.ascii.co.jp&query=%82%CD%82%B6%82%DF%82%C4%93%C7%82%DE
0022デフォルトの名無しさん
NGNG別に危険は伴わないって
バグが発生しやすいだけ
何故アセンブラが危険を伴うと決めつけたがるんだ?
0024デフォルトの名無しさん
NGNGCで書こうがバグがあったら危険だろ
アセンブラ云々は関係ない
Cで発生せずアセンブラでのみ起こるような危険など発生させたことはないが
具体例を挙げてみてくれ
0025デフォルトの名無しさん
NGNG>ハードディスクぐちゃぐちゃってことはよくある
無ぇよ
>ウイルスより被害大(たった数字が1違っただけなのに〜)
ハァ?
先入観と妄想が激しいようですな
0026デフォルトの名無しさん
NGNG例えばメモリのA番地からB番地までをクリアするコードを書いたつもりが
ループの終了条件を間違えてB番地以降もクリアしてしまった場合。
Cのコードならばsegmentation faultやアクセスバイオレーションで終了してくれるが、
アセンブラならばそのままメモリの最後までクリアしてしまう。
0027デフォルトの名無しさん
NGNGOS持っているメモリ保護機能はCで書こうがアセンブラで書こうが同じように動作する
アセンブラをなんだと思ってるの?
0028デフォルトの名無しさん
NGNGまたいるよ(*´Д`*)
だったら、なんでCPUのアナライザなんか売ってんだよ。
人間の最適化が必要だからだろ。
0029デフォルトの名無しさん
NGNGグレート!
0031デフォルトの名無しさん
NGNGニーモニック"変換機"だと思われ
0032デフォルトの名無しさん
NGNGwarata
00332
NGNG一般教養として身に付けとけ.アセンブラ判らないと
「キャッシュに載るように」なんてのも判らんだろ?
0034デフォルトの名無しさん
NGNG俺も「グレート!」です。
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNGああ、もちろん手作業で最適化するのは時間が掛かるけどね。
x86アセンブラなら色々idiomあるし、触っても良いじゃない。
0037デフォルトの名無しさん
NGNG最適化なんてしなくてもいいように技術が進化してるんだから、過去の遺産は棄てなさいね。俺は32歳のプログラマーだけど、年収3000万だよ。
0038デフォルトの名無しさん
NGNG方が速いんだよ。
そりゃ中にはそれ以上のことをやる人はいるけど、アセンブラで動く物作った
位で得意になってるようなやつには吉野家のコピペ貼っちゃうぞ。
0039デフォルトの名無しさん
NGNG自慢がしたいだけ?逝ってよし
0040デフォルトの名無しさん
NGNGPen3->Pen4とかの違いでもうだめじゃん。
0041デフォルトの名無しさん
NGNG>アセンブラは業務で仕方なくとか、
>どうしても高速化したいときとかに使う物で、
>趣味でやるもんじゃねーよ。
???
どっちかというと趣味でやる(やりたくなる)もんじゃないの?
高級言語だと靴の上から足を掻いてるみたいで気持ち悪い−もっとダイレクトに書いてみたい、という動機で。
0042デフォルトの名無しさん
NGNGそういう方はどうぞやってください。
0043デフォルトの名無しさん
NGNGホビイストがプログラミングする動機は「面白いからやる、やりたいからやる」なわけだから、変な理由をつけて止める理由はないよね。
プロになった場合でもアセンブリの経験がないより、あった方がいいんでしょ、使わないまでも。
やりたい人はおおいにやりましょう。
0044デフォルトの名無しさん
NGNGもしいたら、どんな仕事してるかおしえてちょ!!
0045デフォルトの名無しさん
NGNGだけど、もう一方で普通の人はコンパイラに勝てないというのも正しいと思う。
そんなわけで、アセンブラを勉強するのに良い方法。
Cで簡単な関数を書いて、アセンブリソースを出力してみる。
これで勉強するとCでもアセンブラでも速いコードが書けるようになるよ。
0046デフォルトの名無しさん
NGNG0047キャリー
NGNG0048デフォルトの名無しさん
NGNG最適化しなくていい世界に住んでるあんたは幸せだな。
世の中そういうところだけじゃないよ。
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNGインラインアセンブラ強力だし
Delphiのコンパイラの最適化は 多少弱いから 使う価値あるしさ
0051デフォルトの名無しさん
NGNG最適化はコンパイラがやってくれるので心配無用です
0052デフォルトの名無しさん
NGNGあんたはタイトなループをCで書いて満足な速度出せますか?
0053デフォルトの名無しさん
NGNG具体的にどんな処理を書くときの話?
005451じゃないけど
NGNG書いて無い。
0055デフォルトの名無しさん
NGNG2,3年前の話だけど、本を見ながらソースをアセンブラに書き直したら
何割も早くなった事がある。
素人のおれがやっても、そんなだからプロがやったらもっと
速くなるんじゃないか?
それとも、この2,3年の間に飛躍的にコンパイラの技術が発展したとか?
0056デフォルトの名無しさん
NGNGだがプロファイルもとらずに最初から高速化する奴はヴァカ
0057デフォルトの名無しさん
NGNG>>55 飛躍したのはCPUだよ。動作が複雑化して単純な最適化は通用しなくなったのさ。
今自分が使ってるCPUに実行ユニットがいくつ有って、パイプライン何段だか知ってる?
0058デフォルトの名無しさん
NGNG全く同じ処理を何度もする場合でしょ
そんなケースってほとんどない気もするけど
でも、今はいろいろCPUあるし・・・
だから意味ないと思う
0059名無しさん
NGNG100万くれ
0060デフォルトの名無しさん
NGNGゴゴゴゴゴルァ!!
自社ライブラリを各CPU毎にアセンブラで最適化する身にもなってみやがれ
氏ぬよもう
0061デフォルトの名無しさん
NGNGインテルのコンパイラは見たことない。
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGまた知ったか君が・・・
でも人間を最適化出来たらそれが一番だろうな
0064デフォルトの名無しさん
NGNG内容は駄スレに値する程度のものしかありません
ここは抽象的な事を書いて知ったかするためのスレです
0065デフォルトの名無しさん
NGNGどっちでもいいから、煽ってないでなにか根拠を示せよ。
006658
NGNGアセンブラで最適化する必要のあるライブラリーってなんですか?
DSP以外にあるんでしょうか?
0067デフォルトの名無しさん
NGNGおまえが知ったかなんだろ?
アセンブラのコーディングなんてやったことないんだろ?
自分の部下にやらせているんだろ?
0068デフォルトの名無しさん
NGNGこのスレが知ったかの固まりの駄スレであることは明白だろう
0069デフォルトの名無しさん
NGNGパスワードの処理なんかに最適だと思うけど。
コンパイラなんかで書いていたら、すぐに解読されてしまうよ。
0070キャリー萌え
NGNGSP(スタックポインタ) 魔法使い
ステータスレジスタ/フラグ 貴族
アキュムレータ/汎用レジスタ 雑兵
裏レジスタ 伏兵
セグメントレジスタ 嫌われ者
0071デフォルトの名無しさん
NGNGなぜ?
実際にアセンブラなんて使ったことなくても
コンピューターの仕組みがわかってれば
ある程度のことは予想つくのでは?
物理とか化学の勉強したことないの?
自然現象もその類
0072デフォルトの名無しさん
NGNG実行中の状況をトレースされたら終わりだと思うが?
0073デフォルトの名無しさん
NGNG3D関係。リアルタイムだから間に合わなければ速くしなければ使い物にならないので。
あとLightwave, PhotoShopのプラグインなんかもコンパイラの対応していない
最新の命令(3DNOW!SSE2など)を使うためにアセンブラ使わざるを得ないんじゃないの?
よく知らないけど。
0074デフォルトの名無しさん
NGNG予想で適当なことを書くことを知ったかと呼びます
0075デフォルトの名無しさん
NGNGまた、そういう意味のないたとえ話を…。
まぁ、机上の知識でもいいから、なんか具体的な話をしてみれよ。
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG3Dで複雑なワンスキンメッシュのモーフィングも
アセンブラ使わんとマトモな速度でないぞ
0078デフォルトの名無しさん
NGNG>3D関係。リアルタイムだから間に合わなければ速くしなければ使い物にならないので。
リアルタイムならフレームレートを落とすだけ
ムービーを作るときなどのレンダリングならリアルタイムである必要はないので
間に合わないもへったくれもない
だから3D関係だからというのは当てはまらない
>コンパイラの対応していない最新の命令
これは確かにアセンブラを使わなければどうにもならないが
0079デフォルトの名無しさん
NGNG今は構成が違うから関係なさそうだけど。
0080デフォルトの名無しさん
NGNGリアルタイム描画が必要な状況では、
フレームレートが落ちてると見苦しい事が多いので、
無理をしてでも稼ごうとするもの。
レンダラのプレビューならそれでも良いんだろうけど、
デモやゲームだと見苦しいよ
0081デフォルトの名無しさん
NGNGαブレンドは良く話題に出るがアセンブラを使わなくても高速化する方法は
そこらのゲーム作成系の掲示板でいつも話題が出る
後者はビデオカードの助けがないと、どっちみちまともな速度で動かない
0082デフォルトの名無しさん
NGNGそのトレーサーが使え無い様にする事もできるのだが。
0083デフォルトの名無しさん
NGNGその手の方法だと、トリッキーな演算するんで、逆に読みづらくなるよ。
それに、エロゲ作るんじゃないんだから、αブレンドだけで60fpsが出たからといって満足はしないよ。
フェード中にちびキャラいくつも動かしたいとか、要求はいくらでも出てくる。
0084デフォルトの名無しさん
NGNGてゆうかロジックがばれたら破られるパスワードなんて実際には使い物にならない。
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGロジックを解析しなくても、分岐を書き換えればそれで終わりです
0088デフォルトの名無しさん
NGNG別に全部アセンブラ化するわけではないし(場合のよってはやったが)、
先にCでプロトタイプ作っとけば、特に困難なわけではない。
ともかく高速化の要求が現実にある以上やらざるを得ないんだよね。
なんか未経験妄想君っぽいんでもう相手にするのは控えるよ。じゃあね。
0089A
NGNGX87FPUは全く知る必要は無いし、
Cで元のコード書いて、ループの中だけ
インラインアセンブラで置き換えれば良いだけと、
あんまりアセンブラの知識は必要なさそう。
0090デフォルトの名無しさん
NGNG逃走
>先にCでプロトタイプ作っとけば
そんなしょぼいプログラムですか・・・
現代の話じゃないそうです
0091デフォルトの名無しさん
NGNGは?
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGターゲットアドレスを変化させながら ローテート命令を必要回繰り返すだけ。
Cだとどうなる?
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG0096age
NGNG0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNGとりあえずリトルエンディアンなら
int *p, ld = 0;
for (p = startp; p < endp; p++) {
int d = *p; *p = d << 1 | ld; ld = (unsigned int)d >> 31;
}
こんな感じ(ビット並びにもよるけど)。でも、最近のCPUならこの処理
のネックはローテイトには無いでしょう。考えなきゃいけないのは、
1.データのロードストア方法(Dキャッシュ周辺)
2.パイプラインストールの回避。これは特にCPUに依存。
って辺りで。といっても、私自身はアセンブラ不要なんて考えは
さらさら無くて、ハードに近い部分や、特定条件(引数の範囲が
特殊でそれによる最適化が出来たり)での有用性はあるし、業務でも
使っているので、このスレで頭ごなしに否定している人を見ると
「なんだかなぁ」とは思うんだけど。
0100デフォルトの名無しさん
NGNGこのスレで頭ごなしに否定している人ってどれのこと?
見あたらないんだけど妄想ですか?
0101デフォルトの名無しさん
NGNGEAX と EBX を合体させて、
EAX を上32ビット、EBX を下32ビットとして、計64ビットの
レジスタとして使うって事?
■ このスレッドは過去ログ倉庫に格納されています