title: How to do jump to register indirect in nasm 64 bit
body: <p>I've the following nasm code in a 32 bit program ( a Forth interpreter)</p>
  
  <pre><code>    MOV     EBP, LONG[USINI+(CW*(3))]    ;Return stack
      ...
      LODSD                  ; NEXT
      JMP      LONG[EAX]
  </code></pre>
  
  <p>The last instruction fetches an address from where AX points to and jumps to that address.
  The equivalent code in 64 bits doesn't assemble any more:</p>
  
  <pre><code>    MOV     RBP, QWORD[USINI+(CW*(3))]    ;Return stack
      ...
      LODSD                  ; NEXT
      JMP      QWORD[RAX]
  </code></pre>
  
  <p>What is the correct way to specify this instruction in NASM 64 bits?
  Of course it may be a defect in nasm, but how could I establish that?</p>
  
  <p>(The exact same code assembles to good effect in fasm.)</p>
  
  <p>(The first QWORD is accepted by nasm)</p>
  
  <p>The message is:"ci86.lina64.asm:318: error: impossible combination of address sizes"<br>
  318 is the line with JMP.</p>
  
  <p>The nasm version is:NASM version 2.10.01 compiled on Jun 14 2012</p>
  
  <p>Leaving out "QWORD" gives the same error message and in addition:
  "ci86.lina64.asm:318: error: impossible combination of address sizes"</p>