title: yasm movsx, movsxd invalid size for operand 2
body: <p>I am trying to assemble the code below using yasm. I have put 'here' comments where yasm reports the error "error: invalid size for operand 2". Why is this error happening ?</p>
  
  <pre><code>segment .data
      a db 25
      b dw 0xffff
      c dd 3456
      d dq -14
  
  segment .bss
      res resq 1
  
  segment .text
      global _start
  
  _start:
      movsx rax, [a] ; here
      movsx rbx, [b] ; here 
      movsxd rcx, [c] ; here
      mov rdx, [d]
      add rcx, rdx
      add rbx, rcx
      add rax, rbx
      mov [res], rax
      ret
  </code></pre>