H:\Dev\Tests\00_WordArray\WordArray.lpr:13 asm
00000001000015D0 55 push rbp
00000001000015D1 4889E5 mov rbp,rsp
H:\Dev\Tests\00_WordArray\WordArray.lpr:14 mov ecx,$000F000F
00000001000015D4 B90F000F00 mov ecx,$000F000F
H:\Dev\Tests\00_WordArray\WordArray.lpr:15 mov [Buf],cx
00000001000015D9 488909 mov [rcx],rcx
H:\Dev\Tests\00_WordArray\WordArray.lpr:16 end;
00000001000015DC 488D6500 lea rsp,[rbp+$00]
00000001000015E0 5D pop rbp
00000001000015E1 C3 ret
Yes, definitely a bug because it is moving rcx instead of cx.
However, another thing that should be mentioned is that depending on the ABI that code will not work anyway because in 64 bit the first parameter is often passed in rcx which is being overwritten with a constant value resulting in an invalid pointer.
Also, strictly speaking the "word ptr" should not really make a difference in this case because the size of the move is determined by the source operand, cx in this case.
Conclusion: yes, there is a bug but, that code is asking for trouble anyway.