아래 코드에서 for 루프를 인라인 어셈블리로 변환하려면 어떻게해야합니까? (사면이 이상한 코드, 난 그냥 그것을했다.)인라인 어셈블리
1)이이 "어떻게 라인 어셈블리에서 사용하는"질문이 아닌 것입니다) 비주얼 스튜디오
2를 사용하여 x86 용입니다 "이 코드를 최적화하는 방법"질문
3) 다른 예는 괜찮을 것입니다. 나는 abit에서 더 좋은 예제 코드를 생각할 것이다.
OK 난이 더 좋은 예입니다 희망 :
int doSomething(double a, double b, double c)
{
double d;
for(int i=100;i<200;i++)
{
d = a*a + b*b + c*c;
if(d>i)
return (i-99);
}
return -1;
}
이렇게하는 것이 좋은 이유가 있습니까? 알맞은 컴파일러는 멍청한 어셈블리 프로그래머가 할 수있는 것보다 훨씬 좋은 일을 할 것입니다. 그리고 당신은 어떤 CPU를 목표로하고 있습니까? –
또한 코드에는 루프 내부에 중복 표현이 있습니다. 두 번째 줄은 b가 즉시 c로 대체되어 무의미합니다. 최적화하기 전에 코드를 수정해야 할 수도 있습니다. –
또 다른 한가지 - 루프 자체는 루프 내부에서 모든 표현식이 루프 불변이므로 중복됩니다. 너 정말 이걸 생각하지 않았 니? 어떤 아키텍처에서 –