내가 64 어셈블리 및 Visual C와 함께 일하고 있어요 ++ 2010/MASM은 명령범용 64 비트 레지스터의 값을 MMX에 쓰는 방법은 무엇입니까?
movq mm0, rax
는 "잘못된 명령 피연산자"가 포함 내게 말하고있다.
이것은 실제로 불법입니까, 아니면 버그 일 수 있습니까? 지침을 사용하지 않고이 절차를 수행하는 방법은 무엇입니까?
내가 64 어셈블리 및 Visual C와 함께 일하고 있어요 ++ 2010/MASM은 명령범용 64 비트 레지스터의 값을 MMX에 쓰는 방법은 무엇입니까?
movq mm0, rax
는 "잘못된 명령 피연산자"가 포함 내게 말하고있다.
이것은 실제로 불법입니까, 아니면 버그 일 수 있습니까? 지침을 사용하지 않고이 절차를 수행하는 방법은 무엇입니까?
버그이거나 64 비트 모드 또는 MMX 확장을 지정하지 않았습니다. movq mm0, rax
은 기계 코드 48 0F 6E C0
의 유효한 명령어입니다. 인텔 명령어 세트 참조를 참조하십시오. 다른 모든 방법이 실패하면 머신 코드를 데이터 바이트로 포함 할 수 있습니다.
즉, MMX는 더 이상 사용되지 않습니다 (특히 64 비트 모드에서는 기본적으로 SSE2가 있기 때문에). 정말로 사용하고 싶은지 확인하십시오.
시도해보십시오. MOVD mm0, rax' –