私の知る限り、16 ビット PC の時代には、セグメント レジスタに各タイプのセグメントのアドレスが含まれていて、この SS:[EDI] のようなものでオフセットにアクセスできました。これは EDI に含まれる値をスタック セグメントへのオフセット。
これで、32 ビット システムには GDT (グローバル記述子テーブル) と LDT (ローカル記述子テーブル) があり、セグメントにはそのテーブルへのインデックスが含まれ、正しいメモリ アドレスを指すオフセットを計算できることがわかりました。
私の理解は正しいですか?
PUSH DWORD PTR SS:[EBP+8] ; basicbof.00401000
では、このようなステートメントは 32 ビット OS (XP SP2) では何を意味するのでしょうか?