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.
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.
ご存じのとおり、コンピューター プログラムは、メモリと呼ばれる 1 次元のバイト配列を使用します。base address
とoffset
は数値であり、データ構造をメモリにマップするために使用されます。たとえば、次の C 構造を考えてみましょう。
struct My {
struct My* next;
int a,b;
} first;
この構造体はメモリのどこかに配置されます。のベース アドレスはfirst
、構造体の最初のバイトのインデックスであり、オフセットは、構造体の先頭に相対的な構造体フィールドの最初のバイトのインデックスです。IEfirst.a=256
は に変換されmov [first+first_a], 256
ます。
アセンブラの Apointer
は、基本的に C のポインタと同じです。