title: the difference of machine code between mov eax, 0 and mov ax, 0
body: <p>I use nasm to study assembly. Below is the source code:</p>
  
  <pre><code>[BITS 32]
  mov ebx, 0
  mov bx, 0
  mov bl, 0
  </code></pre>
  
  <p>then I use 'ndisasm -b 32 test.bin' to get output as following:</p>
  
  <pre><code>00000000  BB00000000        mov ebx,0x0
  00000005  66BB0000          mov bx,0x0
  00000009  B300              mov bl,0x0
  </code></pre>
  
  <p>My question is the difference of BB00000000 and 66BB0000, I know the opcode of MOV is B, but what is the 66 before B?</p>