Aracılığıyla paylaş


IDiaFrameData::get_program

Geçerli işlev çağrısından önce yazmaç kümesini hesaplamak için kullanılan program dizesini alır.

Sözdizimi

HRESULT get_program ( 
   BSTR* pRetVal
);

Parametreler

pRetVal

[out] Program dizesini döndürür.

İade Değeri

Başarılı olursa döndürür S_OK. Bu özellik desteklenmiyorsa döndürür S_FALSE . Aksi takdirde bir hata kodu döndürür.

Açıklamalar

Program dizesi, prologu oluşturmak için yorumlanan bir makro dizisidir. Örneğin, tipik bir yığın çerçevesi program dizesini "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + ="kullanabilir. Biçim, işleçlerin işlenenleri takip ettiği ters cila gösterimidir. T0 yığındaki geçici bir değişkeni temsil eder. Bu örnek aşağıdaki adımları gerçekleştirir:

  1. Yazmaç ebp içeriğini öğesine T0taşıyın.

  2. Bir adres oluşturmak, bu T0 adresten değeri almak ve değerini yazmaçta eipdepolamak için içindeki değerine ekleyin4.

  3. içinde depolanan T0 adresten değeri alın ve bu değeri yazmaçta depolayın ebp.

  4. içindeki değerine ekleyin 8 ve bu değeri yazmaçta depolayınesp.T0

    Program dizesinin CPU'ya ve geçerli yığın çerçevesi tarafından temsil edilen işlev için ayarlanan çağırma kuralına özgü olduğunu unutmayın.

Ayrıca bkz.