Windows x86 assembly language syntax : <p>(1) What does the following code mean? I cannot find any reference about the ds:[ ] syntax anywhere online. How is it different from without the ds:?</p>

<pre><code>cmp eax,dword ptr ds:[12B656Ch] 
</code></pre>

<p>(2) In the following instruction,</p>

<pre><code>movsx eax,word ptr [esi+24h]
</code></pre>

<p>What is the esi register used for? Is it possible to guess what the original C code is doing from using such a rare register?</p>
