2016-06-25 12 views
1

このコードはGDBで逆アセンブルされています。これは、x86ターゲットのelf実行可能な32ビットです。この行はPLTセクションから来ます。JMPとJMPの違いは何ですか?

0x08048320 <+0>: jmp *0x80497b0 
    0x08048326 <+6>: push $0x8 
    0x0804832b <+11>: jmp 0x8048300 

私は、JMP *(最初の命令)と最後の違いを理解していません:私は違いを理解していない

答えて

3

星印のないJMPは、...

それはです

int x = 42; 
int p = x; 
およびの差と同じ差異
int *px = &...; 
int q = *px; 

は、そのアドレス0x80497b0に格納されているシンボルにジャンプします。 jmp 0x80483000x8048300にジャンプします。

このコードの機能を理解するには、「プロシージャリンクテーブル」(または実際には投稿全体)hereを読んでください。

関連する問題