title: Invalid base/index expressions
body: <p>Trying to use base-index expressions to manipulate memory in 16-bit real mode results in compilation errors:</p>
  
  <pre><code>movw    $0xd000, -2(%sp)
  movw    $0, -4(%sp)
  movw    $1, -6(%sp)
  </code></pre>
  
  <p>Compiled with</p>
  
  <pre><code>gcc -c -Wa,--32 $(DIR_BS_SRC)/mbr.S -o $(DIR_BS_SRC)/mbr.o
  ld -nostdlib --oformat binary --Ttext 0x7c00 $(DIR_BS_SRC)/mbr.o -o $(DIR_B$
  </code></pre>
  
  <p>produces the following errors:</p>
  
  <pre><code>bootsector/src/mbr.S:20: Error: `-2(%sp)' is not a valid base/index expression
  bootsector/src/mbr.S:21: Error: `-4(%sp)' is not a valid base/index expression
  bootsector/src/mbr.S:22: Error: `-6(%sp)' is not a valid base/index expression
  </code></pre>
  
  <p>I thought this was valid syntax, even in 16 bit real mode?</p>