Figure A.12 demonstrates how the preceding switch block can be viewed as
a tree by the compiler and presents the compiler-generated assembly code that
implements each tree node.
Figure A.12 Tree-implementation of a switch block including assembly language code.
Case^120
Case^140
Case^501
Case^1001
Case^1100
Case^1400
Case 2000
Case^3400
Case 4100
Above1100
501_Or_Below
1100_Or_Below
cmp eax,1100jg Above1100Proceed to 1100_Or_Below
Cmp eax, 1100je Case_1100cmp eax, 501jg Case_1001Proceed to 501_Or
_Below
cmp
eax, 501
je Case_501sub eax, 120je Case_120sub eax, 20jne AfterSwBlockCase120:...
cmp eax, 3400jg Case_4100je Case_3400cmp eax, 1400je Case_1400cmp eax, 2000jne AfterSwBlockCase_2000:...
Beginning
Deciphering Code Structures 503
21_574817 appa.qxd 3/16/05 8:54 PM Page 503