1 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 23:24:53.41 ID:ybskOyVt.net] ※前スレ 推薦図書/必読書のためのスレッド 76(c)2ch.net peace.2ch.net/test/read.cgi/tech/1425092139/
473 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 07:49:12.06 ID:f/DwOlJx.net] >>466 たしかに CASL の勉強はいいかもね,エミュレータもそろっているし CASL でシフトによる乗算・除算ができたら,卒業してよい
474 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 08:18:47.97 ID:TFnbcrnr.net] ゲーム解析ってもう少し具体的になにがやりたいんだ?
475 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 08:42:07.41 ID:fjapH3WC.net] 漏れは、短時間で読める、簡単な本をすすめる。 以下が漏れの定番 まずこの本で、オブジェクト指向を学ぶ スッキリわかる Java入門 第2版、2014 その後、この2冊を順に読む たのしいRuby 第4版、2013 みんなのPython 第3版 OSのすべての機能を学びたいなら、ムック本の Linuxエンジニア養成読本、第2版、2014 > 気になるのはパソコン内部の動きやコンパイラとか言語、OSがどう成り立ってるのかですが、他に先に学んだほうがいいことあったら教えてもらいたいです それなら、とりあえず小さなものを作ってみることを勧めます。 バーチャルマシンでも、コンパイラ(言語)でも、OSでも興味あるなら何でもいいです。 とにかく手を動かして小さな何かを完成させてみる。 そうしたら、問題点や疑問点、新たに欲しい機能などが出てくると思うので、 また本を読んだり質問したりして勉強です。 >>373 の「まずは行動してみなさい」というのは、本のサンプルコードを検証するだけでなく、 動くモノを一から作って完成させてみよう、という意味だと思いますよ。 とくにコンパイラやOSなどは、作らなければ理解できません。 そういう点で「30日でできる!OS自作入門」はお勧めです。 初めは小さなものを作り、次第に大きくしながら少しずつ学習できます。 モノを作るということの片鱗が学べます。 (とても30日ではできませんが)
476 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 08:49:56.18 ID:OW1lxN3o.net] >>469 ありがとうございます。 見るだけじゃなくて自分でいじりながらやらないと覚えられない物なんですかね。。 >>473 最終的にはゲームのプロテクトとか外してみたいです・・・
477 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 08:57:18.67 ID:vBjKt0IW.net] コンパイラなんて、10年ぐらいプログラミングしてからの話 車の運転は皆できるけど、車が動く仕組みなんて、 誰も理解できないのと同じ ツールは使えるけど、自分で作ったりはできない。 ツールの仕組みを知るのは難しすぎる
478 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 09:18:26.51 ID:8Ct5fj2y.net] コンパイラなんて学部の1年か2年で作るし、 今はLLVMとかあるからそんなに難しくない
479 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 09:27:20.21 ID:tHziPwGz.net] おもちゃを作るのと同じにするなよ
480 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 09:55:42.12 ID:MUiLtkND.net] 何と何を同じにするって? コンパイラの仕組みをしるの10年かかるの?
481 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 10:15:37.48 ID:z/ewYw/w.net] 0から作るわけじゃないんでしょ。
482 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 10:20:50.91 ID:l5dB39Ob.net] >>283 x86.uchan.net/ x86アーキテクチャを学ばせる本で、EIPの説明が間違ってるというのは致命的な気がする。 Google booksで試し読みができる。 https://www.google.co.jp/search?q=%22eip+%E5%91%BD%E4%BB%A4%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E7%8F%BE%E5%9C%A8%E5%AE%9F%E8%A1%8C%E4%B8%AD%E3%81%AE%E5%91%BD%E4%BB%A4%E3%81%AE%E7%95%AA%E5%9C%B0%E3%82%92%E8%A8%98%E6%86%B6%E3%81%99%E3%82%8B%22&ie=UTF-8
483 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 12:33:13.53 ID:BLNmsPF/.net] そもそもx86アーキテクチャを理解しているPG、SEがどれくらいいるのかな?
484 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 13:05:40.17 ID:hRep6fdc.net] >>482 おお、これがステマというやつか、微に入り細をうかがって突っ込むという奴ですね たしかに eip は命令をフェッチすると同時に事後直後にインクリメントされるからね、それがインストラクションポインタというもの こういうのは特定のアーキテクチャーの内部まで潜る(内部レジスタを想定する)立場のテクストを一度でも経験しないとね こういうテキストがあると面白いんだがもう i386以降は複雑怪奇だね‥なにかいいテキストと実物はないのかな?
485 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 13:28:37.93 ID:EVFdC/rb.net] x86ちょまど本はEIPの説明が間違っているのか
486 名前:80x86 mailto:sage [2015/09/20(日) 14:13:28.56 ID:4R9O0wfv.net] だから、マニュアルを読めとあれほど…
487 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 14:57:25.45 ID:z/ewYw/w.net] むかーし処理速度が追いつかなくてMASMで動画処理をやった事があるけど、 286以降はもうわからんなぁ。 アセンブラやるとCのポインタとはすぐ理解出来るね。
488 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 15:31:16.83 ID:6FQTh/LG.net] 結局ページングもメモリモデルも理解しなきゃいけない羽目になるから素直に8086 から勉強した方が早道なのにほんとこのスレは知ったかど素人が多いな 初学者は質問しない方がいいぞ デタラメばかりで吹き込まれて迷うだけ
489 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 16:26:18.59 ID:9ckVsCbT.net] インラインアセンブラで書いてデバッガで見てみるで十分な気が 本じゃなくて手を動かすのが一番だろ
490 名前:80x86 mailto:sage [2015/09/20(日) 16:44:04.19 ID:4R9O0wfv.net] ツールは無料で手に入るから、やろうと思えばできる環境にあるので、あとはやる気だけじゃないですか。 つまり、どれだけモチベーションがあるかが重要。
491 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 17
] [ここ壊れてます]
492 名前::36:04.93 ID:JQmB5l/g.net mailto: 結局どのツールを使い、どの本を読めばいいのですか? Windows7 で使えないのを紹介して紹介した気分に浸るなんて、頭がお花畑なんですかね わからないのなら黙っててくれませんか? [] [ここ壊れてます]
493 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 17:55:54.00 ID:hheo9oaF.net] 俺様のお成りーw
494 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 19:44:17.17 ID:juizBTyy.net] 偉そうな乞食
495 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 20:02:29.59 ID:f/DwOlJx.net] ライトレフトのジェントルマン ぷりーずギブみーさむマネー
496 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 20:24:41.48 ID:VYwql8Iw.net] 初心者の質問をネタにマニアが知識自慢を始めるのはいつもの事
497 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 22:47:51.73 ID:3P7QIt2y.net] EIPの説明間違ってるってマジ? 実装も間違った解釈でやってるんだったら かなりまずいな タイトルをx86風に変えないと
498 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 23:28:06.32 ID:vBjKt0IW.net] いつも、アセンブラの話をすると、 虫干ししたように、老害がわいてくるなw 漏れも含めてw そして過去の栄光を懐かしむw
499 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 02:15:47.72 ID:qBJEaPVd.net] まあまあそういわないで,今からアセンブラにトライする人にとっての教材はなにか間がるのも一興では? やっぱり gcc のインラインかな,でもアセンブル後に最適化がかかるというからな‥ x86 のfar/nearは触れず,プロテクトモードにも触らずやっていけないものかな‥
500 名前:デフォルトの名無しさん [2015/09/21(月) 02:30:31.41 ID:wiEjTubo.net] >>495 命令実行中にEIPが次の命令指してるって認識がないらしく例えばCALL命令の実装はこんななってる。 static void call_rel32(Emulator* emu) { int32_t diff = get_sign_code32(emu, 1); push32(emu, emu->eip + 5); emu->eip += (diff + 5); } 命令実行中に命令長5バイトを足して帳尻合わせてる。しかも2箇所。 命令ごとにこんなことしてちゃコーディングスタイルとしても問題ありだよなあ。
501 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 02:53:31.10 ID:wiEjTubo.net] x86.uchan.net/question/%E5%91%BD%E4%BB%A4%E5%AE%9F%E8%A1%8C%E4%B8%AD%E3%81%AEip/ の回答を見る限りでは、x86の動作を文章とコードで正しく読者に理解させよう という意図はないみたいだな。 まあ筆者の理解も怪しいみたいだし仕方ないんだろうなあ。
502 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 03:43:38.93 ID:PxfGcB/k.net] 命令実行後はEIPは次の命令を指しているが、命令実行(中)はEIPの更新プロセスそのものだろ 命令実行中に命令長足さないで一体どこで足すのだ?
503 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 04:05:50.23 ID:wiEjTubo.net] > 一体どこで足すのだ? 命令デコード部分で足しゃいいじゃん。そうすりゃ実行部は static void call_rel32(Emulator* emu, int32_t diff) { push32(emu, emu->eip); emu->eip += diff; } こんな感じでスッキリするぞ。
504 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 04:07:31.68 ID:wiEjTubo.net] > 命令実行後はEIPは次の命令を指しているが、 なんだ、馬鹿か。
505 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 04:17:08.67 ID:PxfGcB/k.net] >>501 なるほど 命令デコード部分をシミュレートしている関数群が別にあったのか それなら納得
506 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 04:21:35.07 ID:wiEjTubo.net] > 命令デコード部分をシミュレートしている関数群が別にあったのか デコードと実行が混在してるトンチンカンな実装だが? https://book.mynavi.jp/support/bookmook/x86/
507 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 04:34:10.82 ID:PxfGcB/k.net] ん? デコードと実行を分けずに実装しているモデルならば、個別の命令実行(関数)でEIP更新するしかないのでは? 厳密には、貴方の言うようにデコードと実行を分けるべきかも知れんが、目次だけでは全体像がよくわからん
508 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 04:55:29.80 ID:0gHVMVMQ.net] とりあえず実装的にはEIPは現在実行している配列のインデックスとか思っておけばよいのね
509 名前:503 mailto:sage [2015/09/21(月) 06:53:31.53 ID:4KhgBTaS.net] > デコードと実行を分けずに実装しているモデルならば、個別の命令実行(関数)でEIP更新するしかないのでは? それでも関数の前の方にデコード、後の方に実行部分を書き、実行部分ではEIPの値は 次の命令を指すよう統一するとかやりようはある。 初心者にx86の動作を学習させる目的のプログラムで、各命令各フォーマットごとに 個別の関数を用意して中身は行き当たりばったりのコーディングするのが好ましい という認識ならなんも言わんよ。
510 名前:80x86 mailto:sage [2015/09/21(月) 07:57:56.14 ID:mYVaswZG.net] 洋書ならx86アーキテクチャ扱った本はいくらでもあるぞ。
511 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 08:40:21.24 ID:nHE6ObMa.net] x86の本とりあえず買って積んであったんだが なんか微妙っぽいな読むのやめといた方がいいのか
512 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 08:59:30.33 ID:YOKNQ9WG.net] パラパラめくって自分で判断することぐらもできない池沼なんだ
513 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 09:06:27.88 ID:OxV5k3cG.net] >>510 こいつ作者っぽくねw?
514 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 11:03:43.82 ID:dJwH9+MV.net] ググればいくらでも出てくるのに、無料でpdf落とせるところなんて山ほどあるだろ。 少しは試行錯誤しろ!
515 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 11:27:22.47 ID:qBJEaPVd.net] 何も初学者の立場からみれば,そのいろいろ出てくるという pdf が間違っているかもしれないのが怖い >>510 のように開き直られては打つ手がない >>487 >ページングもメモリモデルも ページングはプロテクトモードでOSでも作ろうという文脈でのキーワード メモリモデル?それなに?もしかして far/near のことか?それならリアルモードでもキーワード >>487 はキーワードをサラダ盛にしただけの >知ったかど素人 と判断する
516 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 11:32:32.17 ID:UbjjqdfU.net] > デコードと実行を分けずに実装しているモデルならば、個別の命令実行(関数)でEIP更新するしかないのでは? それでも関数の前の方にデコード、後の方に実行部分を書き、実行部分ではEIPの値は 次の命令を指すよう統一するとかやりようはある。 初心者にx86の動作を学習させる目的のプログラムで、各命令各フォーマットごとに 個別の関数を用意して中身は行き当たりばったりのコーディングするのが好ましい という認識ならなんも言わんよ
517 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 11:35:42.45 ID:7N2xzjh+.net] エスパーすると 今では誰も気にしなくなった古い知識だが 省いて近道するとかえって遠回りになるからやっぱり知っておけという意味かと
518 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 12:10:36.96 ID:qBJEaPVd.net] いや,省くと遠回りになるんだったら古い知識ではないだろう. で,本当に省くと遠回りになるのか?
519 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 12:50:16.41 ID:4KhgBTaS.net] 筆者の一人、エミュレータのコーディングを担当した側と思われる人物が2年以上前に 自作x86エミュレータの終焉 sssslide.com/www.slideshare.net/d-kami/x86-18819537 > どこではまるのか > ・同じような命令を作っていて > ・ちょっとした違いにはまる > ・命令長など とか書いてて、コーディングスタイルに問題があることは既に理解してた風ではあるな。
520 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 13:01:07.47 ID:dJwH9+MV.net] PCゲーム解析なら、アセンブリ言語とwin32apiの知識が最低限必要。 cdプロテクト解除なら、それに加えてシステムサービスの知識があった方がより理解が深まるとおもう。
521 名前:80x86 mailto:sage [2015/09/21(月) 13:08:53.23 ID:mYVaswZG.net] PCゲーム解析にはOSの知識は不要です。 それよりもAPIを覚えてください。
522 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 14:09:29.22 ID:bBXgyxRB.net] MSパーらしいやりとり
523 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 15:35:24.37 ID:UbjjqdfU.net] 漏れは、短時間で読める、簡単な本をすすめる。 以下が漏れの定番 まずこの本で、オブジェクト指向を学ぶ スッキリわかる Java入門 第2版、2014 その後、この2冊を順に読む たのしいRuby 第4版、2013 みんなのPython 第3版 OSのすべての機能を学びたいなら、ムック本の Linuxエンジニア養成読本、第2版、2014 > 気になるのはパソコン内部の動きやコンパイラとか言語、OSがどう成り立ってるのかですが、他に先に学んだほうがいいことあったら教えてもらいたいです それなら、とりあえず小さなものを作ってみることを勧めます。 バーチャルマシンでも、コンパイラ(言語)でも、OSでも興味あるなら何でもいいです。 とにかく手を動かして小さな何かを完成させてみる。 そうしたら、問題点や疑問点、新たに欲しい機能などが出てくると思うので、 また本を読んだり質問したりして勉強です。 >>373 の「まずは行動してみなさい」というのは、本のサンプルコードを検証するだけでなく、 動くモノを一から作って完成させてみよう、という意味だと思いますよ。 とくにコンパイラやOSなどは、作らなければ理解できません。 そういう点で「30日でできる!OS自作入門」はお勧めです。 初めは小さなものを作り、次第に大きくしながら少しずつ学習できます。 モノを作るということの片鱗が学べます。 (とても30日ではできませんが)
524 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 17:09:13.18 ID:0gHVMVMQ.net] コピペはいいから
525 名前:80x86 mailto:sage [2015/09/21(月) 17:41:30.61 ID:mYVaswZG.net] 解析に関する色々なサイトを見てみれば、自分に何が足りないかがわかってくるとおもうけどなぁ。急がばまわれ!と言うし。
526 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 18:00:07.45 ID:+FhKw/An.net] ここほれワンワン ポチ
527 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 19:48:49.84 ID:UbjjqdfU.net] やっぱ専門書はPDFとかの電子書籍が利便性良いな ジェネラティブアートって本買ったんだけど、PDF版のダウンロードコードが付いてくるんだよね 今までは本めくりながらコード打ったり、気分転換に外でするときも本持ち歩くのに荷物かさばったりで何気に煩わしかった その煩わしさからPDF版が開放してくれた 何よりPCの画面にPDFとプログラミング環境を同居させて勉強は捗るわ 一度この利便性を体験してしまうと、少なくともプログラミングなどの学習や作業にPCを使うケースでは、もう紙版で勉強は出来ないな つうことでMacのKindle版とか使い勝手どぅーなの?
528 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 20:59:59.82 ID:M+IUkSty.net] A4サイズのKindleが出てくれたら良いのに
529 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 00:07:20.50 ID:r0pk0I9s.net] x86.uchan.net/question/eip%E3%81%AE%E5%86%85%E5%AE%B9%E3%81%AF%E7%8F%BE%E5%9C%A8%E5%AE%9F%E8%A1%8C%E4%B8%AD%E3%81%AE%E5%91%BD%E4%BB%A4%E3%81%AE%E7%95%AA%E5%9C%B0%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84/ だったらお前が正確な本書けクソワロタw
530 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 00:39:29.35 ID:dtSdKV/2.net] Cはある程度、java(とandroid)はCよりかは劣るくらいに勉強しました 達人プログラマーやリーダブルコード、プログラミング作法、パソコン(プログラム)はなぜ動くのか、ポインタ完全制覇あたりを読んで、次に何を勉強すればいいか、またそれにあたってどんな本を読めばいいのか悩んでます 気になるのはパソコン内部の動きやコンパイラとか言語、OSがどう成り立ってるのかですが、他に先に学んだほうがいいことあったら教えてもらいたいです
531 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 00:54:15.22 ID:nPjcOL1Q.net] 何か作りたいものがあれば
532 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 01:30:29.84 ID:QYv6foab.net] コピペだらけのスレになった サヨナラ
533 名前:デフォルトの名無しさん [2015/09/22(火) 03:28:45.78 ID:4Ivoz8Dl.net] 例解UNIXプログラミング教室 この書籍今でも古くないですか?
534 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 04:46:25.03 ID:0pZRAY1l.net] >>528 >>521 ここに書いてある。 さらに以下の本も読む Rubyのしくみ、2014 年末に出た外人の翻訳本で、 Rubyの実装系、Ruby1.9のRuby仮想マシンの本。 内容は新しく、Ruby2.0のキーワード引数まで含む
535 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 05:43:04.78 ID:kaKZzH+Y.net] Rubyとかやらんでもいいだろ
536 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 07:53:37.10 ID:UbSEMfXf.net] >>531 日本語おかいいよ、あんた。
537 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 10:03:58.52 ID:LkQioLqT.net] >>528 勉強が目的なのね。
538 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 10:07:26.91 ID:ynkTXunB.net] 注意 >>528 は >>368 からのコピペ
539 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 11:03:02.91 ID:xYIXtMOQ.net] Rubyは遅いのがなあ…
540 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 12:46:03.68 ID:4AyuxI8s.net] 釣られちゃった、テヘ
541 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 12:51:31.94 ID:nPjcOL1Q.net] 遅いんですか
542 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 23:59:13.93 ID:0pZRAY1l.net] C++,Javaで、プログラミング・コンテストに出るときは、 計算量、100万回/sなら楽勝で、 普通、500万回/sぐらいで見積もる Rubyでも、100万回/s近くまで行くので、 C++,Javaの1/10ぐらいの速度
543 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 01:59:32.55 ID:tgopytPc.net] > 普通、500万回/sぐらいで見積もる 「普通、」てことは基準があっての話なんだと思うけど、 今の2〜4GHzくらいのプロセッサで5M回/秒ってことは、一回の 計算に400〜800クロックってことだけども、「計算量」って どういう計算を指して言ってんの?
544 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 09:58:50.89 ID:TpRZPFko.net] >>517 >つまり >役に立たない 役に立たないとわかってて本書いたのかよw
545 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 10:12:38.73 ID:kRZgQ5dj.net] エミュレータが役に立たないと言ってるわけでは無さそうだが?
546 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 12:48:21.31 ID:R7cc8rRU.net] 反面教師として読めばいいんじゃないか?
547 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 17:01:25.74 ID:DLBnWQIV.net] P≠NP予想についてわかりやすい入門書を教えてください
548 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 17:10:33.50 ID:wtF9vBO0.net] www.amazon.co.jp/dp/4062579332/ これのステマ
549 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 20:34:44.69 ID:J99VbM9+.net] >>501 今さらだけど、関数ポインタの配列に突っ込んでるから引数を統一したかったんじゃね?俺はx86知らんからそれがいいかは知らんが
550 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 20:49:28.92 ID:TpRZPFko.net] これの影響かw https://github.com/d-kami/demu/blob/master/vm/instruction/Instruction.java https://github.com/d-kami/demu/blob/master/vm/instruction/InstructionMap.java
551 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 21:05:22.05 ID:tgopytPc.net] >>547 switch 〜 case でやりゃいいじゃん。
552 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 22:42:28.88 ID:8OChjI2J.net] Web系の人はRailsの使い方に詳しい人が神格化されてるんだけど Railsのコアメンバーならわかるけど 長く使ってればそりゃ詳しくなるでしょって感じ あと大概ライブラリを使うことを優先する 一方数値計算の分野の人はアルゴリズムとかは知ってるんだけどクソコードを書く なんでも自分で実装しようとする バランス感覚重要だなと
553 名前:デフォルトの名無しさん [2015/09/24(木) 01:07:18.12 ID:KIwTvfAf.net] >>541 一般的にプログラミングコンテストでは、 計算時間1〜2秒以内が条件で、 問題に書いてある制約を見て、 1 < n < 50 なら、 4重ループを組んでも大丈夫だから、 総当たりするとか、 1 < n < 1000 なら、 4重ループは無理だから、 枝刈りするような効率的な方法を考えるなど、 制約と計算量の見積もりで、戦略を変える
554 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 01:09:52.64 ID:LVD16SnA.net] C言語でイベントハンドラ的なものを実装するときは、関数ポインタの配列使うのは一般的な手法だろ switch文を使うとコードが肥大化しがちで拡張性に問題を残す x86の命令の実行をイベントとして扱っているのならこういう実装もありじゃね
555 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 01:20:53.06 ID:wEZiZgmT.net] >>552 初心者用の本としてはわかりにくい気がするけどね 関数呼び出しのコストもバカにならない
556 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 01:57:38.62 ID:wwwzRyc5.net] 0から255で各値にcase設けたらキレイにジャンプテーブル化すると思うけどな、 > switch文を使うとコードが肥大化しがちで拡張性に問題を残す てどういうこと言いたいんだかサッパリわからん。
557 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 02:33:46.85 ID:LVD16SnA.net] 件のx86本の詳細実装は分からないが、普通に考えて(x86は可変命令長のCPUなので) 判定条件は1バイト長固定でなく 任意の可変長バイトだから、switch文でジャンプテーブル構成するならcase文は0から255ではないだろ。 一般的にはイベントハンドラの様に、将来どう変化するか分からない分岐先をcase文で記述すると継ぎはぎだらけの 構造になりバグの温床になる可能性が高い。 極力、条件判定部には変更を加えないで済むように、呼び出し先(関数ポインタ)と必要に応じてパラメータテーブルを 構造体でまとめた上で配列にして判定関数に突っ込むのが定石。
558 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 06:20:06.72 ID:wwwzRyc5.net] >>552 が分かってないことは解った。
559 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 06:28:00.69 ID:osy2dlhp.net] >>552 が分かってないらしいぞ
560 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 12:17:32.77 ID:Pxss+Vp6.net] まじかよ
561 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 13:05:27.92 ID:BRjCSlK6.net] まじざぜ
562 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 15:04:41.60 ID:oDDa+jqE.net] C++のエッセンス ビャーネ・ストラウストラップ 著 柴田望洋 訳 www.sbcr.jp/products/4797384772.html 分かっている人も分かっていない人もこれを読んで解決だよ
563 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 15:37:21.14 ID:tuRY00D5.net] Effective C++ 読めばOK
564 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 16:41:35.88 ID:q4HMnIRV.net] C++第四版でいいのでわ?
565 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 18:04:43.82 ID:gzKwIoLy.net] C++わかる気がしない
566 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 21:49:31.41 ID:jcoD8MsE.net] C#の入門書を何冊か購入したり評判のいい川俣さんの改訂版C#入門読んだりしたけど どうしてもオブジェクト指向のとこできいなり難しくなって全く理解出来なかった C#なんか糞食らえ、オブジェクト指向死ねとか思ってたりしたんだけど たまたま本屋で見つけたスッキリわかるJAVA入門読んだらめちゃくちゃ分かりやすくて この本読んだ後改訂版C#入門読んだらあっさり理解出来るようになったよ
567 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 21:51:57.58 ID:q4HMnIRV.net] 全てクラスの概念をどう自分で消化するだけかと。
568 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 04:06:24.50 ID:ZR7Tawv3.net] > 普通に考えて(x86は可変命令長のCPUなので) 判定条件は1バイト長固定でなく > 任意の可変長バイトだから、switch文でジャンプテーブル構成するならcase文は0から255ではないだろ。 x86の命令コードどうなってるか知らんのなら黙ってればいいのに。
569 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 05:00:00.39 ID:YZQxqBDN.net] Effective Modern C++ www.amazon.co.jp/gp/product/4873117364/ Amazonでずっと在庫切れ入荷未定が続いているけど買った人いる? 内容どんな感じ?
570 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 07:41:05.49 ID:2Q1QZbHv.net] みんなすでに原著で読んでるから買わないだろう コレクターアイテムとしては買っても仕方ないが
571 名前:566 mailto:sage [2015/09/25(金) 09:43:22.26 ID:YZQxqBDN.net] >>568 レスありがとう 原著のレビュー見てみると(1件だけど)良さげな感じ 日本語版の翻訳がちょっと心配だけど、近所の大型書店行ってみるか…
572 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 10:28:43.51 ID:Ix1/GPv7.net] >>509 じゃあタダでください
573 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 16:47:51.11 ID:ZR7Tawv3.net] 例の本の筆者の片方謙虚だな。 自作エミュレータで学ぶx86アーキテクチャのプログラムミスについて d-kami.hatenablog.com/entry/2015/09/23/093921 > 他にもミスがあるので随時追記していきたいと思います。お金を出して頂き > 購入して頂いたのに申し訳ありません https://twitter.com/d_kami/status/647035038177996800 > うん、私のx86の知識はでたらめだ。修正せねばなるまい