0

Can anyone give a briefly explain of what is "base address", " Offset", "pointer" in assembly language? How they related to each other?

I am learning how to work with olldbg. I am new to assembly language.

4

1 に答える 1

1

ご存じのとおり、コンピューター プログラムは、メモリと呼ばれる 1 次元のバイト配列を使用します。base addressoffsetは数値であり、データ構造をメモリにマップするために使用されます。たとえば、次の C 構造を考えてみましょう。

struct My {
  struct My* next;
  int a,b;
} first;

この構造体はメモリのどこかに配置されます。のベース アドレスはfirst、構造体の最初のバイトのインデックスであり、オフセットは、構造体の先頭に相対的な構造体フィールドの最初のバイトのインデックスです。IEfirst.a=256は に変換されmov [first+first_a], 256ます。

アセンブラの Apointerは、基本的に C のポインタと同じです。

于 2013-10-30T13:57:51.923 に答える