2011-04-12 5 views
1

ASM 실행 흐름을 해석하는 방법을 모르겠습니다. 지금까지 살펴본 모든 파일에는 ASM 파일 내의 레이블에 대한 명시적인 점프 (Intel x86 AT & T 구문, 즉 jmp 또는 jl)가있었습니다.ASM 실행 흐름에 대한 질문

내 질문 : 다른 레이블로 이동하지 않고 레이블의 끝에 도달하면 어떻게됩니까? 실행이 다음 레이블로 계속됩니까?

예 :

foo: 
    opcodes 
    ... 

nextLablel: 
    moreopcodes 
    ...   

'foo는'레이블 아래 옵 코드를 실행 한 후, 'nextLablel'위에 어셈블러 이동합니까?

미리 감사드립니다.

답변

3

레이블이 실제 코드에 존재하지 않으므로 예, 분기가 없으면 코드가 자연스럽게 실행됩니다. 어셈블러는 레이블을 무시하고 코드를 계속 수행합니다. 레이블은 jmp, je 등과 같은 요소를 분기하는 편리한 방법으로 사용됩니다.

코드에 분기가없는 경우에도 원하는만큼의 레이블을 사용할 수 있습니다. 그들은 아무 것도하지 않을 것이고 아주 나쁜 습관 일 것입니다. 그러나 이것은 당신이 자연스러운 코드 흐름에 어떤 문제도 일으키지 않는다는 것을 보여줍니다.

+0

감사합니다. ASM 코드를 자세히 살펴보고 원래의 C 코드를 기반으로 사실대로 실행을 계속합니다. 다시 한 번 감사드립니다! – certifiedNoob

+0

당신은 환영합니다 :) – Spyros