
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
こんにちは
No.5です。
>で、結局far jmp処理については分からないんですか?
その通りです。技術資料を読ませていただきましたが、くだんの様に答え合せをして間違いに気づく力量なのでご迷惑をおかけしないようにここで去ります。
>しかし後続の25が分からず、そのあとのアドレス0004F120というのもこれをどう処理しているのかも分かりません。
私の力量では、&HFF25が far jmp を決定づける(CALL, PUSH,JMP の候補から)ところまでです。
ヒントは第2.6章表2-1、表2-2にあるようなのですが「インデックスに加算される」という言葉から動作が想像できませんでした。これは一体どういう動作なの(^^;?でSTOPです。
考えられる可能性は[EDX]レジスタと&H0004F120を何らかのハードウェア的なルールで加算してからコードポインタにロードするんだろうな..とは思いますが、IA-32のハードに詳しい方にお願いしたいと思います。
No.5
- 回答日時:
こんにちは
No.4です。
追加資料ありがとうございます。引用文の解釈が完全に間違っていました(;_;)
付録BのB-12(P.346)を見てください。
「&HFF25」、つまり「1111 1111:0010 1010」は、エンコーディングの 「1111 1111:mod 101 r/m」にはまります(mod とr/m は関係ない) 。
この命令及びフォーマットを見るとJMP -Unconditional Jump(to other segment) indirect intersegment であり、「&HFF25」はこれを示しているのでした。
ちなみに&HFFは、JMP命令とは限りません。付録Bをみたら、PUSH や CALL にもあります。
これだけの資料があるのだから、理解できるまで読み込みましょう(^.^;
No.4
- 回答日時:
こんにちは
No.3です。
3-411章を見ると &HFF のJUMP命令は、下記 4種類ありますね。
OpC.d Inst.
FF /4 JMP r/m16
FF /4 JMP r/m32
FF /5 JMP m16:16
FF /5 JMP m16:32
このオペコードの /4 と/5 は、3.1.1.1章の最初に説明があります。
<引用>/digit - 0 から7 までの数字で、命令のModR/M バイトがr/mオペランドだけを使用することを示す。reg フィールドには、命令のオペコードを拡張する数字が入っている。
「命令のModR/M バイト」とは、2.1章に説明されているように[Mod],[レジスタ/オペコード],[R/M]のビット群から構成されていて、「命令のModR/M バイト」の「r/m」オペランドだけを使用すること。 その「r/m」オペランド(reg フィールド)には、命令のオペコードを拡張する数字が入っていることが判ります(多分 &HFF + 5バイト)。
つまり/4 とか/5 を指定ということからオペコードは、&HFFと「命令のModR/M バイト」(今回は&H25)の 2バイトであることが判ります。
&H25の意味は、JMP /5を決定づける働きを持つことと2.6章の表2-1に規定される働きを持つということです。
..と思います。
以上が当たっているかは、付録A-Bの オペコード&HFF25 に答えがのっていると思うのです。
この回答への補足
お付き合いいただきありがとうございます
ご指摘の参考資料を載せておきます
以下URLのIA-32 インテル? アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、中巻 B: 命令セット・リファレンス N-Z(上から6番目)です
http://www.intel.co.jp/jp/download/index.htm#ia32
直接URL(http://download.intel.com/jp/developer/jpdoc/IA3 …)
No.3
- 回答日時:
こんにちは
いい資料をお持ちですね(^^;
ところでこの資料は、途中で終わっています(命令リファレンスNの頭)。 おそらく質問者さんの疑問を解消するには、後編に収録されている「付録A、付録B」も必要に思います。
No.2
- 回答日時:
こんにちは
far jump 命令は一つだけではないはずで、FFのあとにモードフィールドやらレジスタ・メモリフィールドなにやらがあるはず。
質問者さんがターゲットにされているCPUのハードウェア(far があるということは、INTEL系でしょうけど)を明示した方がよいのでは?
それによってターゲットCPUのオペコード表をお持ちの方がいれば、話は早いのですが..
P.S.
最初に見た質問の文章が変わってますね(^^;
この回答への補足
IA32です。
以下のPDFのものです。
http://download.intel.com/jp/developer/jpdoc/IA3 …
これの451ページに該当のjmp farが載っています。
しかしこれを読んでもFF25 20F14000というのが解読できません。
FFというのはオペコードだと分かります。
しかし後続の25が分からず、そのあとのアドレス0004F120というのもこれをどう処理しているのかも分かりません。
ちなみにこの部分はcall後の他dll内関数呼び出し時のjmpです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- その他(コンピューター・テクノロジー) 統計ソフトJMPについて 画像をWordに貼り付ける方法(そのまま論文に使用)を教えてくれるかたいま 1 2022/05/31 22:08
- その他(ソフトウェア) JMP (統計的発見のためのインタラクティブなソフトウェア) の名前の由来を教えて下さい 1 2022/10/25 13:48
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- Visual Basic(VBA) Excel VBA マクロ ホルダー内にある複数のファイルを規則に従い格納をしたいです 4 2022/11/19 10:58
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- JavaScript Javascriptで出来ること 1 2022/05/16 20:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
有無、要否、賛否、是非、可否...
-
どちらが正しい?「~して行き...
-
目上の方に、メールの語尾「以...
-
YouTubeに動画を「あげる」の表...
-
「あらむ」の文法的意味は?
-
ひらがなを数字で表す方法教え...
-
佐賀弁だと思うのですが意味を...
-
郷に入らずんば郷に従えという...
-
真に 誠に どちらが正しい漢字?
-
日本語の意味
-
不等号の使い方について
-
키야 これどういう意味ですか?
-
「ガキの使いやないんやから」...
-
頃とはどの範囲をさす言葉ですか?
-
“ in situ ” とはどういう意味...
-
「蓋然性」と「可能性」の違い
-
方と法、、、
-
ドMとMの違いを教えてください
-
呆然と茫然 なんで呆然自失...
-
PCの累積使用時間の確認
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
有無、要否、賛否、是非、可否...
-
目上の方に、メールの語尾「以...
-
どちらが正しい?「~して行き...
-
ひらがなを数字で表す方法教え...
-
YouTubeに動画を「あげる」の表...
-
「あらむ」の文法的意味は?
-
不等号の使い方について
-
頃とはどの範囲をさす言葉ですか?
-
何と読み、どういう意味でしょ...
-
真に 誠に どちらが正しい漢字?
-
日本語の意味
-
読み方
-
厚待遇 好待遇 高待遇
-
「スタートが切れる」はどうい...
-
方と法、、、
-
利用と活用の違いや、「利活用...
-
郷に入らずんば郷に従えという...
-
ドMとMの違いを教えてください
-
“ in situ ” とはどういう意味...
-
x64 ベースプロセッサとはどう...
おすすめ情報