title: Pointer arithmetic in assembly weird behaviour (nasm)
body: <p>my data segment looks like this:</p>
  
  <pre><code>segment data use32 class=data
      v db 4
      v1 db 4
      v2 db 4 
      v3 db 7
  </code></pre>
  
  <p>why is  <code>mov bh, v</code> a syntax error, but <code>mov bh, v + v1</code> or <code>mov bh, v + v1 + v2</code> not? v + v1, the addition of 2 pointer, is not valid pointer arithmetic, as a matter of fact. More, the debugger tells that into bh is moved a little number, like 6, but taking into consideration that the addresses are very large numbers, it seems that the nasm does some subtraction behind the scenes</p>
  
  <p>I use nasm 1.6</p>