title: How does the x86 ROR instruction works?
body: <p>My <code>EAX</code> register contains the <code>xxxxxx9D</code> value and I have the following assembly code:</p>
  
  <pre><code>C0C8 14 --&gt; ROR AL,14
  </code></pre>
  
  <p>To me, it means that the last 8 bits of the <code>EAX</code>'s 32 bits value are rotated bitwise by 14 mod 8 = 6 positions</p>
  
  <pre><code>0x9D = b1001 1101
  </code></pre>
  
  <p>will be transformed into</p>
  
  <pre><code>b0111 0110 = 0x76
  </code></pre>
  
  <p>However, OllyDbg tells me that <code>EAX = xxxxxxD9</code>, which means EAX has been rotated bitwise by 4 bits!</p>
  
  <p>Where am I wrong?</p>