Poniższy wykres przepływu sterowania pochodzi z pojedynczej funkcji w Notatniku (64-bitowy system Windows 7). Dlaczego konsolidator (lub kompilator) rozdziela podstawowe bloki pojedynczej funkcji na wiele nieciągłych (nie ciągłych) fragmentów?
Poniższy wykres przepływu sterowania pochodzi z pojedynczej funkcji w Notatniku (64-bitowy system Windows 7). Dlaczego konsolidator (lub kompilator) rozdziela podstawowe bloki pojedynczej funkcji na wiele nieciągłych (nie ciągłych) fragmentów?
DCoder już odniósł się do własnej odpowiedzi w komentarzu.
Fragmenty wykresu przepływu sterowania są zwykle określane jako bloki podstawowe lub rozszerzone bloki podstawowe. Powód, dla którego są zmieniane, musi być związany z optymalizacjami wykonanymi przez kompilator.
Jest kilka terminów, o które pytasz:
Zdecydowanie sugeruję, aby zainteresowani tym tematem przeczytali o kompilatorze projekt. W szczególności zasugerowałbym przeczytanie „Smoczej księgi” („Kompilatory - zasady, techniki, narzędzia &” autorstwa Aho, Lama, Sethi i Ullmana) i tam części o optymalizacji. Tutaj odnoszę się do drugiego wydania z 2007 roku (ISBN: 0-321-48681-1).
Zapoznaj się z sekcjami 8.4 („Podstawowe bloki i wykresy przepływu”) i 8.5 („Optymalizacja podstawowych bloków ”), aw drugim 8.5.7 („ Ponowne składanie podstawowych bloków z DAG ”). Ale to dopiero początek. Rozdział 9 jest równie ważny jako całość, podobnie jak sekcja 11.10 („Optymalizacje lokalizacji”). Cytując jeden z powodów tego rodzaju optymalizacji, o który pytasz ze wstępnego akapitu podsekcji poświęconej przeplataniu partycji:
11.10.3 Przeplatanie partycji
Różne partycje w pętli często czyta te same dane lub czyta i zapisuje te same wiersze pamięci podręcznej. [...]
cytat z „Compilers - Principles, Techniques, & Tools” autorstwa Aho, Lam, Sethi i Ullman.
Sprowadza się to do tego, o czym DCoder już wspomniał w komentarzu do twojego pytania.
Aha, a książka „Reversing: Secrets of Reverse Engineering” jest również dobrą lekturą która omawia to częściowo. Jednak bardziej skupia się na tym, „jak to wygląda” niż „dlaczego to się robi”.