1

誰かが「:」がjmp命令で何に適しているかを説明していただければ幸いです。以下はwikiからのwikiからのものです

JMP 0x89AB, I know that this one is to jump to that position 
JMP 0xACDC:0x5578 what is that?
4

5 に答える 5

1

ウィキを参照せずに推測することしかできませんが、これは「セグメント化された」アドレス空間を備えた8088/86/286/386プロセッサに関係している可能性があります。

于 2012-04-20T20:48:26.720 に答える
1

x86 ベースのプロセッサは、セグメント化されたメモリ アーキテクチャで動作します。

基本的に、メモリは 2 つの部分を使用してアドレス指定されます。セグメント アドレスとオフセット アドレス。「:」の前がセグメントアドレス、「:」の後ろがオフセットアドレスです。

于 2012-04-20T20:48:56.637 に答える
1

0x1234:0x5678 スタイルのアドレスはセグメント化されたアドレスです。それが意味するのはすべてです0x1234 * 0x10 + 0x5678。あなたが与えた例は0xB2338.

于 2012-04-20T20:54:02.583 に答える
1

それは遠いジャンプです。その意味は、リアル モードとプロテクト モードで異なります。

  • リアルモード → セグメントとオフセットを持ち、ジャンプ先はsegment * 16 + offset.
  • 保護モード → GDT (システム全体のグローバル記述子テーブル) または LDT (プロセスごとのローカル記述子テーブル) のいずれかの記述子を指すセレクターがあります。ジャンプ ターゲットは、記述子の種類によって異なります (十分な権限が必要です)。
    • コードセグメント:offset記述されたセグメント内にジャンプします。
    • コール ゲート、タスク ゲート、TSS:offsetは無視され、適切なアクションが実行されます (例: タスク スイッチ)。
于 2012-04-21T11:01:46.810 に答える
0

0xACDC はコード セグメント アドレスで、0x5578 はコード内のオフセットだと思います。

于 2012-04-20T20:48:43.017 に答える