
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
有無、要否、賛否、是非、可否...
-
目上の方に、メールの語尾「以...
-
どちらが正しい?「~して行き...
-
ひらがなを数字で表す方法教え...
-
「あらむ」の文法的意味は?
-
YouTubeに動画を「あげる」の表...
-
読み方
-
“ in situ ” とはどういう意味...
-
郷に入らずんば郷に従えという...
-
不等号の使い方について
-
何と読み、どういう意味でしょ...
-
テーマパークをまわるのまわる...
-
真に 誠に どちらが正しい漢字?
-
日本語の意味
-
「感触を感じる」って日本語的...
-
方と法、、、
-
頃とはどの範囲をさす言葉ですか?
-
次の土曜日とは 今週か?
-
ドMとMの違いを教えてください
-
「ガキの使いやないんやから」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
有無、要否、賛否、是非、可否...
-
どちらが正しい?「~して行き...
-
目上の方に、メールの語尾「以...
-
「あらむ」の文法的意味は?
-
YouTubeに動画を「あげる」の表...
-
ひらがなを数字で表す方法教え...
-
何と読み、どういう意味でしょ...
-
不等号の使い方について
-
日本語の意味
-
頃とはどの範囲をさす言葉ですか?
-
郷に入らずんば郷に従えという...
-
真に 誠に どちらが正しい漢字?
-
テーマパークをまわるのまわる...
-
方と法、、、
-
次の土曜日とは 今週か?
-
読み方
-
「感触を感じる」って日本語的...
-
利用と活用の違いや、「利活用...
-
“ in situ ” とはどういう意味...
-
関西での「~しな」の使い方に...
おすすめ情報