[FASM] Skok między dwie instrukcje
Ostatnio zmodyfikowano 2017-02-15 16:21
garlonicon Temat założony przez niniejszego użytkownika |
[FASM] Skok między dwie instrukcje » 2017-02-07 15:04:10 Zaczynając od lewej strony mamy: położenie instrukcji, kody maszynowe i wygenerowany kod w składni FASMa. Mamy coś takiego: 00a6 6f outsw 00a7 72 79 jb 0x7b ;area_0122 00a9 24 2d and al,0x2d 00ab 20 00 and byte [bx+si],al 00ad 8e d0 mov ss,ax Natomiast w innym miejscu mamy coś takiego: 0086 05 00 00 add ax,0x0000 0089 3b 06 02 00 cmp word ax,[ds:0x0002] 008d 72 1b jb 0x1d ;area_00aa Jeśli powyżej wystąpi skok, dostaniemy coś takiego: 00aa 2d 20 00 sub ax,0x0020 00ad 8e d0 mov ss,ax Czy kompilator rzeczywiście potrafi tak zoptymalizować kod, aby skakać pomiędzy dwie instrukcje nadając im nowe znaczenie, czy to ja coś pokręciłem? |
|
pekfos |
» 2017-02-08 09:19:27 |
|
garlonicon Temat założony przez niniejszego użytkownika |
» 2017-02-15 16:21:04 Dzięki za link. Okazało się, że źle odczytałem kody operacji i wszedłem na dane. Mimo wszystko dobrze wiedzieć, że kompilatory potrafią robić takie cuda z instrukcjami. Zamykam temat. |
|
« 1 » |