컨텍스트에서 AVM2 (ActionScript 가상 시스템 2) 바이트 코드/어셈블리의 디 컴파일러를 고급 ActionScript 3 코드로 작성하려고합니다. 내가 아는 한,이 같은 루프와 같은 구조를 추론하기 위해, 어셈블리를 분석하고이에서 제어 흐름 그래프를 결과로 생성하는 저를 필요로하고, 조건 분기 (/ 다른 경우). 컨트롤 흐름 그래프를 생성하는 알고리즘이 무엇어셈블리에서 제어 흐름 그래프를 생성하는 방법은 무엇입니까?
0 getlocal0
1 pushscope
2 findpropstrict {, private, }::trace
4 pushstring "one"
6 callproperty {, private, }::trace (1)
9 pop
10 pushbyte 5
12 pushbyte 3
14 ifngt L1
18 findpropstrict {, private, }::trace
20 pushstring "two"
22 callproperty {, private, }::trace (1)
25 pop
L1:
26 findpropstrict {, private, }::trace
28 pushstring "three"
30 callproperty {, private, }::trace (1)
33 coerce_a
34 setlocal1
35 getlocal1
36 returnvalue
37 kill 1
:
과 같은 몇 가지 어셈블리를 감안할 때?