- 1 名前:デフォルトの名無しさん [2011/08/28(日) 12:36:52.66 .net]
- 初心者OK!質問大歓迎!のアセンブラのスレッドです。
基本情報の勉強中の人、PICやH8を勉強中の学生などなど…
- 313 名前:デフォルトの名無しさん mailto:sage [2012/08/15(水) 21:43:58.20 .net]
- IEEE754に準拠した浮動小数点演算命令パッケージは探せばあちこちに落ちてるけど
回転/シフト命令だけで結構楽に組めるんだな 超越関数に至ってはSSE2で書いた方がFPUよりも速いという
- 314 名前:デフォルトの名無しさん mailto:sage [2012/08/15(水) 22:18:00.98 .net]
- >>297
Intel Core i7 860です >>10-14 を見て64bitだとうまくいかないのかと思いました
- 315 名前:デフォルトの名無しさん mailto:sage [2012/08/15(水) 22:25:14.65 .net]
- >>308
>を見て64bitだとうまくいかないのかと思いました Windowsの64bit版だと16bitのコードが動かないのはその通り。 64bitか32bitのコードを動かすか、エミュレータ上で16bitのコードを動かせばよいだけ。
- 316 名前:デフォルトの名無しさん mailto:sage [2012/08/15(水) 23:46:39.85 .net]
- >>309
調べてみたら win7のxpモードで16bitが動くようなので それでやってみます!
- 317 名前:デフォルトの名無しさん mailto:sage [2012/09/26(水) 23:10:27.88 .net]
- mov CS:[w_sp],SP
この第一オペランドの:の意味がわからんのです これはCSとw_sp両方にSPを入れるってことなの?
- 318 名前:デフォルトの名無しさん mailto:sage [2012/09/26(水) 23:13:02.28 .net]
- >>311
本かインテルのマニュアルかなんか見れ。
- 319 名前:デフォルトの名無しさん mailto:sage [2012/09/26(水) 23:33:38.29 .net]
- 本見たりググったりしたんだけどわかんねーんだよ
記述自体が古いのかな… なんせPC9801のアセンブラだから…
- 320 名前:デフォルトの名無しさん mailto:sage [2012/09/26(水) 23:43:22.21 .net]
- >>313
超基本的なことだから、書いてないなら本が悪い。ぐぐってわからんのならお前の頭が悪いわ。
- 321 名前:デフォルトの名無しさん mailto:sage [2012/09/26(水) 23:46:33.52 .net]
- 基本的なことなのか!!
すまん…もうちょっと頑張ってぐぐってみる ありがとう
- 322 名前:デフォルトの名無しさん mailto:sage [2012/09/26(水) 23:53:13.25 .net]
- あ!わかった!!!
CSってのはコードレジスタだから、そこを基準に[w_sp]分オフセットがかかってるってことなんだな!! わかったぞ! >>313さんありがとう ちゃんと考えなかったオレが悪い 考えるキッカケを作ってくれてありがとう
- 323 名前:デフォルトの名無しさん mailto:sage [2012/09/26(水) 23:54:19.26 .net]
- ごめん313じゃなくて314でした
- 324 名前:デフォルトの名無しさん mailto:sage [2012/09/27(木) 09:47:06.61 .net]
- @
inc dword ptr [count] というのはアトミックですか? ++cnt; をVC10でReleaseコンパイルしたら上記のようになったのですが、 デバッグコンパイルしたら下記のように分解されてしまいました。 A mov eax,dword ptr [count] add eax,1 mov dword ptr [count],eax Aは明らかにアトミックではないと思いますが、 コードの途中で、他のスレッドが同じコードを通ったときに カウントがおかしくなってしまうのは構いません。 2つ以上のスレッドが同時に@かAを通ったときに 動作が異なる可能性があるのかを知りたいです。 (動作が異なるならインラインアセンブラで書くか、 カウントがおかしくなるのが困るようになったときは クリティカルセクションでも使います)
- 325 名前:デフォルトの名無しさん mailto:sage [2012/09/27(木) 10:04:35.72 .net]
- InterlockedIncrement
- 326 名前:デフォルトの名無しさん mailto:sage [2012/09/27(木) 10:06:38.40 .net]
- 一応、そのx86での実装は
普通はinc等ではなく、lock+xadd
- 327 名前:318 mailto:sage [2012/09/27(木) 11:59:10.28 .net]
- >>319 >>320
知りたいのは、マルチスレッドで同じコードを同時に通った場合に、 @とAで動作が異なる可能性があるかどうかなのです。 カウントがおかしくならないようにするための方法を 示していただいたということは、@もアトミックではないと 解釈して良いのでしょうか?
- 328 名前:デフォルトの名無しさん mailto:sage [2012/09/27(木) 21:16:39.57 .net]
- 割り込みコントローラ回りのコーディングが、どうしたものかわかんないんだよなぁ
- 329 名前:デフォルトの名無しさん mailto:sage [2012/09/27(木) 23:58:41.44 .net]
- cmpxchg
- 330 名前:デフォルトの名無しさん mailto:sage [2012/09/28(金) 00:47:19.87 .net]
- H8なら@に相当するコードはアトミックだったよ。割込とタスク両方からカウントを
変更するときに割禁かまさなくて済むから意識的に使った。 だからx86でも@はアトミックだと類推する。
- 331 名前:デフォルトの名無しさん mailto:sage [2012/09/28(金) 01:14:48.26 .net]
- *
add eax,1 * mov dword ptr [count],eax *印のところでスレッド切り替えが起きたらどうなると思う?
- 332 名前:318 mailto:sage [2012/09/28(金) 12:23:50.67 .net]
- 回答ありがとうございます。
>>323 クリティカルセクションを実装するのに使える命令なのでしょうか? 排他が必用になったときに、試してみます。 >>324 @がアトミックだとなると、 デバッグ版のAとは違う動作になってしまいます。 あまりに挙動が変わってしまう場合は、 インラインアセンブラで@に書き換えてみます。 >>325 他のスレッドで、カウントが巻き戻ってしまうかも しれないというのは分かります。 他に致命的な問題があるのなら、 インラインアセンブラで@に書き換えてみます。
- 333 名前:デフォルトの名無しさん mailto:sage [2012/09/29(土) 17:44:46.97 .net]
- PC/AT互換機での電源の制御ってどう行えばいいんだ?(シャットダウン等)
BIOSファンクションがあるのか、はたまたデバイスとやり取りしてやるのか 出来るなら、どいつが扱ってるのか理解したいから、BIOSファンクションを使わなくてもいいなら、そちらの方法が知りたい
- 334 名前:デフォルトの名無しさん mailto:sage [2012/09/29(土) 18:02:25.95 .net]
- ACPIを通しているのは確実でしょ。
どうやってACPIを使うかは知らん。 探せば仕様書くらい出てくるかも。
- 335 名前:デフォルトの名無しさん mailto:sage [2012/09/29(土) 22:08:07.87 .net]
- >>2326
cmpxchgはCAS命令と呼ばれる物だよ ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%9A%E3%82%A2%E3%83%BB%E3%82%A2%E3%83%B3%E3%83%89%E3%83%BB%E3%82%B9%E3%83%AF%E3%83%83%E3%83%97 Lock-freeとWait-freeアルゴリズムが実装出来る あとx86に ja.wikipedia.org/wiki/Load-Link/Store-Conditional これが欲しかった まあいらんのかも知れんれど
- 336 名前:デフォルトの名無しさん mailto:sage [2012/09/29(土) 22:08:24.52 .net]
- ×>>2326
○>>326
- 337 名前:デフォルトの名無しさん mailto:sage [2012/09/29(土) 22:44:36.32 .net]
- >>327
APMファンクション呼べばよろし ACPIでもできるけどAMLインタプリタ用意せにゃいかんので 面倒くさい
- 338 名前:デフォルトの名無しさん mailto:sage [2012/09/30(日) 18:55:20.60 .net]
- >>331
APMという単語で調べて、一応なんとかなった、ありがとう。 調べれば調べるほど、アセンブラでもかなり高級なプログラミングなんだなと思えて、嫌になってくるが。 in、out命令でなんとかならないかのう
- 339 名前:デフォルトの名無しさん mailto:sage [2012/10/01(月) 16:29:22.52 .net]
- >>332
Embedded Controler叩けばいいはずだが、標準仕様がないしそのへんの情報は ほとんど公開されとらんので自力で調べんといかん のでBIOSにお願いするのが一番簡単
- 340 名前:デフォルトの名無しさん mailto:sage [2012/10/02(火) 16:49:46.89 .net]
- APMって未実装のものも多いよな
ACPI使わないとデバイス割り当て出来なかったりもするし、どこに向かっていくんだか…
- 341 名前:デフォルトの名無しさん mailto:sage [2012/10/06(土) 20:25:08.12 .net]
- そりゃAPMじゃ手に負えなくなってACPIができたんだから
16bitモードが消え去ってUEFIに移行すりゃなくなるだろう
- 342 名前:デフォルトの名無しさん mailto:sage [2013/03/07(木) 11:26:55.04 .net]
- computer 計算機(JIS用語らしい)、コンピュータ
compiler コンパイラ、「コンパイルを行う翻訳プログラム」 linker リンカ、「…ロードモジュールを作成するために用いられる計算機プログラム」 assembler アセンブラ、「アセンブルを行う翻訳プログラム」 assemble アセンブルする、「アセンブラ言語で書かれたプログラムを目的プログラムに翻訳する」 assembler language program アセンブラ言語プログラム assembly language アセンブラ言語(JIS用語らしい)、アセンブリ言語、「機械命令に対応した記号形式を備えたプログラム言語」 source code ソースコード、原始コード コンピュータ用語辞典第3版(日外アソシエーツ)
- 343 名前:デフォルトの名無しさん [2013/04/24(水) 11:21:55.75 .net]
- よろしくお願いします。
はじめてプログラミングを勉強するにあたり、 CASL2とZ80だとどちらがお勧めでしょうか? CASL2は基本情報参考書の付録CD-ROMのエミュ、Z80は講談社ブルーバックス付録CD-ROMのエミュを持っていて、このどちらかで勉強を始めたいと考えているのですが… どなたかアドバイスをよろしくお願いします。
- 344 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 11:25:29.76 .net]
- プログラミング自体が始めてならいきなりアセンブラというのはあまりお勧めできない。
それでもやるというならどちらでも好きにしなさい。
- 345 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 11:35:30.91 .net]
- >>337
エミュレータを使っての学習はつまらんので続かないと思う。 実機を使うのが良いよ。
- 346 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 17:28:28.54 .net]
- ということで、CASL2は落選。ゼッパチの使える基板が秋月辺りで帰れば面白い。
- 347 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 17:29:37.13 .net]
- ごめん、買えれば ね。
- 348 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 17:58:17.10 .net]
- Z80は既に実用的な用途はだいぶ減ってるし、CASL2はもとから実用的なものではないから、
要するに機種はなんでもいいからアセンブラを始めてみたいということだと思うが、それなら 今ならArduino辺りでいいと思う。LEDチカチカさせるだけでも楽しいよ。
- 349 名前:337 mailto:sage [2013/04/24(水) 20:27:47.68 .net]
- 皆さんありがとうございます。
アドバイスをぐぐって調べてみます コンピュータを理解したくて、勉強をしたいと思ったんです。
- 350 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 20:37:11.57 .net]
- このへんやっても今のPCの理解が深まることはないと思うけどな
- 351 名前:デフォルトの名無しさん mailto:sage [2013/04/24(水) 21:30:29.33 .net]
- >>344
お前みたいなやつがいるからどんどんレベルが下がってんだよ
- 352 名前:デフォルトの名無しさん mailto:sage [2013/04/25(木) 03:37:35.34 .net]
- >>344
>今のPCの理解が深まることはないと思うけどな それがアセンブラ弄る唯一の目的と思ってるならお前バカ丸出しだよw []- [ここ壊れてます]
- 354 名前:デフォルトの名無しさん mailto:sage [2013/04/25(木) 04:13:28.59 .net]
- いまからASMやって身になるならどのへんかねぇ
キャッシュと分岐予測あたりが必須になりそうな
- 355 名前:デフォルトの名無しさん mailto:sage [2013/04/25(木) 07:11:13.38 .net]
- >キャッシュ
ない環境も普通にある。 >分岐予測 ない環境も普通にあるし、あってもプログラマとってはさほど負担になるものではない。
- 356 名前:デフォルトの名無しさん mailto:sage [2013/04/25(木) 10:05:32.55 .net]
- 分岐予測が必須とか、15年前からタイムスリップしてきたMIPS信者ですか?とかw
- 357 名前:デフォルトの名無しさん mailto:sage [2013/04/25(木) 10:40:59.84 .net]
- そりゃないとこ探せばあるんだろうけども
- 358 名前:デフォルトの名無しさん mailto:sage [2013/04/25(木) 11:51:09.09 .net]
- 「必須になりそう」って、キャッシュも分岐予測も解ってない奴が何言ってるんだろ?
- 359 名前:デフォルトの名無しさん mailto:sage [2013/04/30(火) 17:23:17.57 .net]
- Ollydbgで得られるアセンブラの記法ってインテル記法?AT&T記法?どっちですか?
- 360 名前:デフォルトの名無しさん mailto:sage [2013/04/30(火) 17:29:52.45 .net]
- ググレカス
- 361 名前:デフォルトの名無しさん mailto:sage [2013/04/30(火) 18:55:26.87 .net]
- >>352
みたらインテル表記でした ネトゲ(とりあえずどんなネトゲでも、npro,ゲームガードつきとか)のチートツールを作ってみたいんですがどうすればいいんでしょうか? Windows7です 串作成、ラッパー、デコードルーチン実装とかなに? 教えてください 串作成っていうの接続のときプロキシを使うってこと? ラッパーは?デコードルーチン実装って? よくわかりません アンパックとかはなんとなくわかりますが どうやって学んでいけばいいのか教えてください
- 362 名前:デフォルトの名無しさん mailto:sage [2013/04/30(火) 18:57:22.94 .net]
- >>353へのレスですミス
- 363 名前:デフォルトの名無しさん mailto:sage [2013/05/01(水) 18:40:23.85 .net]
- 板違い
- 364 名前:デフォルトの名無しさん [2013/05/21(火) 00:02:08.27 .net]
- 世界一速い整数多倍長計算ライブラリを作ってくれませんか?
- 365 名前:デフォルトの名無しさん mailto:sage [2013/05/21(火) 02:13:58.50 .net]
- そんなニーズないよな
- 366 名前:デフォルトの名無しさん mailto:sage [2013/05/21(火) 07:28:29.06 .net]
- なくはないと思う
- 367 名前:デフォルトの名無しさん mailto:sage [2013/05/21(火) 10:34:32.84 .net]
- 昔そういうスレがあった気がする
完成したのか挫折したのか知らんけど
- 368 名前:デフォルトの名無しさん mailto:sage [2013/05/21(火) 10:35:38.08 .net]
- そりゃ何でも少しでも速いほうがいいのは確かだけど、
新しく作ったらバグが完全に無くなるまでしばらくかかるし。
- 369 名前:デフォルトの名無しさん mailto:sage [2013/05/21(火) 11:31:17.83 .net]
- >>357
gmplib.org/ とかで何か不満でもあるのか?
- 370 名前:デフォルトの名無しさん mailto:sage [2013/05/21(火) 15:07:33.51 .net]
- 並列処理対応、64bit対応じゃないと嫌。パスワードクラックしたいんです。
- 371 名前:デフォルトの名無しさん mailto:sage [2013/05/21(火) 19:43:51.04 .net]
- パスワードクラックなら最近はGPU(GPGPU)系じゃね?
- 372 名前:デフォルトの名無しさん [2013/05/21(火) 20:46:51.41 .net]
- >>364
ありがとう 調べてみる
- 373 名前:片山博文MZパンク ◆0lBZNi.Q7evd [2013/05/21(火) 21:39:53.83 .net]
- x86逆汗を作っています。
インテルの技術文書を読みました。 PE形式の情報がダンプできるようになりました。 何かアドバイスをお願いします。
- 374 名前:デフォルトの名無しさん mailto:sage [2013/05/21(火) 22:59:43.97 .net]
- >>366
勇士Qに弟子入りする
- 375 名前:デフォルトの名無しさん mailto:sage [2013/05/21(火) 23:16:17.84 .net]
- アドバイスも何も仕様に従って変換するだけだろ
強いて言うならアドレスを生の数値だけじゃなく 何らかのラベルをつけるといいかもね
- 376 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 05:52:53.30 .net]
- >>366
・Cコードを吐き出すようにする
- 377 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 08:41:40.61 .net]
- 1パスディスアセンブラなんて簡単過ぎるから2パスアセンブラを作る
つまりジャンプ先にラベルを付ける あとある程度コードとデータの分離を可能にし、コードは16進ダンプと 文字列を付ける、など
- 378 名前:片山博文MZパンク ◆0lBZNi.Q7evd mailto:sage [2013/05/29(水) 22:43:35.13 .net]
- アドレッシングややこしや
関数の呼び出し規約が難しい
- 379 名前:デフォルトの名無しさん mailto:sage [2013/05/29(水) 22:47:35.13 .net]
- そんなんややこしい内に入らん
- 380 名前:デフォルトの名無しさん mailto:sage [2013/05/29(水) 22:49:01.25 .net]
- 64bitの呼び出し規約はレジスタ渡し
- 381 名前:オつつスタックは開けておくとか
スタックを16バイト境界に揃えるとか結構ややこしい [] - [ここ壊れてます]
- 382 名前:デフォルトの名無しさん mailto:sage [2013/05/30(木) 04:11:04.04 .net]
- そんなんややこしい内に入らん
- 383 名前:片山博文MZパンク ◆0lBZNi.Q7evd [2013/06/02(日) 21:38:39.39 .net]
- こいつはどでかいswitchが出来そうだ。
ところでa16って何?
- 384 名前:デフォルトの名無しさん [2013/06/03(月) 00:02:51.99 .net]
- push %ebp
mov %esp,%ebp sub $0x28,%esp これgdbで出た結果なんだけど、どういう風に動いてるのかよくわからなくて、図で説明してくださると助かりますorz
- 385 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 00:07:23.82 .net]
- スタックフレームを作ってローカル変数領域を確保している
- 386 名前:デフォルトの名無しさん [2013/06/03(月) 00:17:28.67 .net]
- >>377 1行目で4バイト分確保するん? それで2、3行目はなにを?
- 387 名前:デフォルトの名無しさん [2013/06/03(月) 00:21:37.15 .net]
- もしアセンブラ詳しい人いて教えてくれる人いればスカイプに来てくれると嬉しいです。
スカID satito39
- 388 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 00:24:53.96 .net]
- ttp://www.c-tipsref.com/words/stackframe.html
- 389 名前:デフォルトの名無しさん [2013/06/03(月) 00:28:42.09 .net]
- >>380 はじめの4バイトと3行目の0x28バイト分はその図でいうとどこに当たるのでしょうか?
- 390 名前:デフォルトの名無しさん [2013/06/03(月) 01:26:18.00 .net]
- push %ebp 新たなフレームポインタを書き込むためebpをスタックに退避
mov %esp,%ebp フレームポインタを更新 sub $0x28,%esp 28バイト分のローカル変数領域をスタックに確保
- 391 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 03:11:30.78 .net]
- >>382
> sub $0x28,%esp 28バイト分のローカル変数領域をスタックに確保 40バイト
- 392 名前:デフォルトの名無しさん [2013/06/03(月) 07:18:49.71 .net]
- movl $0xaea4a4af,-0x13(%ebp)
movl $0xb6b2a6ba,-0xf(%ebp) movw $0xc4,-0xb(%ebp) movb $0x0,-0x9(%ebp) 続きでこういうものがあればどう動くのですか?
- 393 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 07:23:58.95 .net]
- >>384
www.intel.co.jp/content/www/jp/ja/developer/download.html#ia32 www.google.co.jp/search?q=at%26t%E8%A8%98%E6%B3%95
- 394 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 09:35:43.09 .net]
- push %ebp ;ebpの退避(以前の BP の値)
mov %esp,%ebp ;ローカル変数参照時にBPを使ってる? sub $0x28,%esp ;ローカル変数領域の確保 何がやりたくて質問してんのやら
- 395 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 15:42:11.79 .net]
- void foo(void)
{ uint32_t a,b; uint16_t c; uint8_t d; a = 0xaea4a4af; b = 0xb6b2a6ba; c = 0xc4; d = 0; : : :
- 396 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 16:48:02.81 .net]
- アラインメント取れていないし文字列でないかい
- 397 名前:デフォルトの名無しさん [2013/06/03(月) 16:54:22.97 .net]
- こういうものがありどのように動くのかなとおもいまして、できれば動きを順番に解説していただきたいorz
0x0804840c <+0>: push %ebp 0x0804840d <+1>: mov %esp,%ebp 0x0804840f <+3>: sub $0x28,%esp 0x08048412 <+6>: movl $0xaea4a4af,-0x13(%ebp) 0x08048419 <+13>: movl $0xb6b2a6ba,-0xf(%ebp) 0x08048420 <+20>: movw $0xc4,-0xb(%ebp) 0x08048426 <+26>: movb $0x0,-0x9(%ebp) 0x0804842a <+30>: jmp 0x804844b <foo+63> 0x0804842c <+32>: movzbl -0x9(%ebp),%eax 0x08048430 <+36>: movzbl -0x9(%ebp),%edx 0x08048434 <+40>: movzbl -0x13(%ebp,%edx,1),%ecx 0x08048439 <+45>: mov $0xffffffcc,%edx 0x0804843e <+50>: sub -0x9(%ebp),%dl 0x08048441 <+53>: xor %ecx,%edx 0x08048443 <+55>: mov %dl,-0x13(%ebp,%eax,1) 0x08048447 <+59>: addb $0x1,-0x9(%ebp) 0x0804844b <+63>: cmpb $0x9,-0x9(%ebp) 0x0804844f <+67>: jbe 0x804842c <foo+32> 0x08048451 <+69>: lea -0x13(%ebp),%eax 0x08048454 <+72>: mov %eax,(%esp) 0x08048457 <+75>: call 0x80482f0 <puts@plt> 0x0804845c <+80>: leave 0x0804845d <+81>: ret
- 398 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 17:04:43.50 .net]
- 自分であたまを使おうという気はゼロ
- 399 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 17:26:14.85 .net]
- >>389
こりゃ荒らしだな
- 400 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 21:00:12.43 .net]
- 0xccでxorした文字列(10文字
- 401 名前:jを戻して表示してるだけ []
- [ここ壊れてます]
- 402 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 21:20:33.05 .net]
- おまいらいじわるだな
せめて金額交渉くらいしてやれよ
- 403 名前:デフォルトの名無しさん mailto:sage [2013/06/07(金) 12:03:20.18 .net]
- アセンブラのディレクティブなどの方言説明がばらばらって困るよな。
同じCPUなのに命令記述が違いそんなレジスタないみたいな。 データの流れが右から左へと左から右へと逆だったり。 酷いのは命令語のニーモニックが特殊な略なのにその説明がどこにもない。 インラインアセンブラとかも個性ありすぎるのにインライン部分の仕様は 解説が一切ないみたいな。
- 404 名前:デフォルトの名無しさん mailto:sage [2013/06/07(金) 12:12:03.69 .net]
- 嫌だったら使うなよ
そのためにC言語とかあるんだから アセンブラ無しでハンドアセンブルなんて事もしょっちゅうだぞ
- 405 名前:デフォルトの名無しさん mailto:sage [2013/06/08(土) 12:28:44.95 .net]
- 統一仕様を策定してユーザーを増やそう という世界じゃないから
- 406 名前:片山博文MZパンク ◆0lBZNi.Q7evd [2013/06/08(土) 18:53:19.31 .net]
- ndisasmのバグ発見!
F2 0F D6 ... が正しくMOVDQ2Qに変換されない。
- 407 名前:片山博文MZパンク ◆0lBZNi.Q7evd mailto:sage [2013/06/12(水) 12:07:16.18 .net]
- ごめんなさい、バグじゃなかったみたい
- 408 名前:デフォルトの名無しさん mailto:sage [2013/06/17(月) 00:48:25.48 .net]
- >>397
たんにサポートしていないだけだろ。正式対応まで待て。
- 409 名前:デフォルトの名無しさん [2013/06/22(土) 07:16:16.14 .net]
- #include <stdio.h>
void main(void) { unsigned buf[4]; _asm { cld mov esi, offset buf mov eax, 22222 mov ecx, 4 rep stosd }; for (int i=0; i<4; i++) printf("%d\n", buf[i]); } このコードを実行すると意図した結果(buf[0]〜buf[3]まで全部22222になる)にならずハングアップするのですが、 どうすればよろしいでしょうか?
- 410 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 08:30:41.12 .net]
- >mov esi, offset buf
これ lea esi, buf じゃないの?動かしてないけど
- 411 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 08:40:28.48 .net]
- 動かしてみた
あと、esiじゃなくてediな int main(void) { unsigned buf[4]; _asm { cld lea edi, buf mov eax, 22222 mov ecx, 4 rep stosd }; for (int i = 0; i < 4; i++) printf("%d\n", buf[i]); } 22222 22222 22222 22222
- 412 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 10:22:52.80 .net]
- eaxやecxをpushしなくていいの?
- 413 名前:400 mailto:sage [2013/06/22(土) 10:47:50.40 .net]
- >>402
ありがとうございます!
|

|