내 응용 프로그램에서 빠른 갈루아 필드 연산을 수행해야합니다. 내 플랫폼, MSP430 마이크로 컨트롤러에 최적화 된 어셈블리로 작성된 곱셈 함수가 있습니다. 이 함수는 두 개의 큰 임의의 크기의 곱을 계산하지만 각 숫자는 16 비트 정수의 배열로 표시되어야합니다. 그러나, 내 프로젝트에서 갈로아 필드 요소는 16 64 비트 정수의 배열로 표현됩니다. 16 비트 64 비트 정수 배열을 최적화 된 어셈블리 기반 곱셈 함수 (즉, 64 비트 정수 배열)에 필요한 표현으로 변환하려면 어떻게해야합니까? 물론 단순히 배열을 (UInt16 *)으로 캐스팅하지 않아도됩니다.다중 정밀도 곱셈을 수행하기 위해 UInt64 배열을 UInt16 배열로 변환하려면 어떻게해야합니까?
MSP430은 리틀 엔디안 아키텍처입니다. 제안에 대해 미리 감사드립니다.
비트 이동 및 마스킹을 사용하십시오. –
의도 한 것이 분명하지 않습니다. 어쨌든 64 비트 정수가 있다면 컴파일러에 맡기지 않으시겠습니까? – Olaf
리틀 엔디안 머신에서는'uint64 []'의 내용을'memcpy()'로'uint16 []'로 간단히 지정할 수 있습니다. – EOF