2012-01-22 2 views
-1

간단한 어셈블리 언어 코드에 대해 생성 될 명령어 수를 계산해야합니다. 그래서 루프가있는 경우에도 해당 루프의 명령어 수를 계산할 수 있습니다. 단지 코드가 필요하기 때문에 각 명령어에 대해 -p 옵션을 사용할 수있는 횟수를 결정할 수 있습니다. 나는 과부 XP 컴퓨터에 매스크를 사용하고 있습니다.X86 어셈블리 언어 코드의 사례 개수 계산

+0

왜 소스 코드가 충분하지 않은지는 명확하지 않습니다. 예를 들어 줄 수 있습니까? 또한'-p' 옵션은 무엇을 하는가? –

+0

@alex -p 옵션. 컴파일러에서의 스텝 오버 옵션과 같습니다. 라인별로 코드를 추적 할 때 유용합니다. 이 명령은 -p 옵션과 함께 program.exe를 디버깅 할 때 사용합니다. 그것은 저에게 그 지시를위한 모든 기록원의 내용을 제공합니다. 다시 -p 키를 누르면 코드에서 두 번째 명령으로 이동하고 해당 명령 실행에 대한 레지스터의 내용을 제공합니다. 모든 지시에 대해 현명한 것처럼 여러 번 내가 -p 옵션을 주어야 하는지를 결정해야합니다. 분기와 루프를 포함하지 않는 간단한 코드의 줄 수를 계산할 수 있습니다. 그러나 루프가있는 코드는 결정하기가 어렵습니다. –

+0

"어렵습니다"이상의 것은 다루기가 어렵습니다. – StilesCrisis

답변

3

이것은 실제로 생각하는 것보다 훨씬 어렵습니다. (일부는 불가능하다고 - http://en.wikipedia.org/wiki/Halting_problem 참조)

코드가 모든 종류의 데이터 (예 : RAM에서 값로드)를 사용하는 경우 데이터의 내용에 따라 코드의 동작이 크게 달라질 수 있으며 이는 명령 실행. 예 : 그것이 루프라면 아마도 어딘가에서 반복 횟수를로드 할 것입니다. 따라서 100 개의 명령어가 실행되거나 100000000 개의 명령어가 될 수 있습니다.