アセンブラで関数 StrPos を実装しようとしています。64 ビット プロセッサと FPC を使用しています。コンパイルすると、次のエラーが表示されます。
function StrPos(Str1, Str2: PChar): LONGINT; assembler;
asm
PUSH DS
CLD
XOR AL,AL
LES EDI,Str2 // error: asm: [les reg32, reg32] Invalid combination of opcode and operands
MOV CX,0FFFFH
REPNE SCASB
NOT CX
DEC CX
JE @@2
MOV DX,CX
MOV BX,ES
MOV DS,BX
LES EDI,Str1 // error: asm: [les reg32, reg32] Invalid combination of opcode and operands
// .........
end;
私を助けてください