Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[FASM] Skok między dwie instrukcje

Ostatnio zmodyfikowano 2017-02-15 16:21
Autor Wiadomość
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?
P-157438
pekfos
» 2017-02-08 09:19:27
P-157462
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.
P-157749
« 1 »
  Strona 1 z 1