Author Topic: Interpretace "test eax eax & jbe"  (Read 878 times)

NeptuN

  • I'd be forever young
  • Junior Member
  • ***
  • Posts: 158
Interpretace "test eax eax & jbe"
« on: September 19, 2010, 12:33:25 PM »
Ahoj lidi,
zrovna jsem narazil na jednu konstrukci v jednom cme, u ktere si nejsem jisty svou interpretaci. Zajimal by ve vas nazor na moji interpretaci.
Code: [Select]
test eax, eax
jbe skok_nekam
Eax obsahuje delku jmena (uvazujeme nenulovou, kladnou, program to jiz kontroloval), uvazujme napriklad hodnotu 9h. Instrukce test provadi v podstate operaci and, tj. bitove nasobeni, vysledek zahodi, nastavi jen priznaky nasledujicim zpusobem: CF=0, OF=0,Z=0/1, SF=0/1,PF=0/1. Naproti tomu instrukce jbe skoci, pokud CF=1 nebo ZF=1 [1]. Potud znama fakta.

Moje interpretace je nasledujici:
V pripade "test eax eax" je vzdy CF=0, tedy jedina moznost skoku je ZF=1. Priznak ZF=1 bude nastaven tehdy a jen tehdy, jestlize eax=0. To znamena, ze fakticky by zde slo nahradit instrukci jbe instrukci jz alias je. Navic, program jiz kontroloval delku jmena a odfiltroval nulovou delku. Zaporna delka byt nemuze. Suma sumarum, skok se nikdy nemuze uskutecnit, jedna se bud o "zmateni nepritele" nebo balast vyplyvnutej "optimalizujicim" kompilerem.

[1] oopweb.com/Assembly/Documents/ArtOfAssembly/Volume/Chapter_6/CH06-3.html#HEADING3-4
Knowledges are powerful weapon

Kockatá hlava

  • Junior Member
  • ***
  • Posts: 134
  • n00b
    • x86asm.net
Re: Interpretace "test eax eax & jbe"
« Reply #1 on: September 21, 2010, 08:56:26 AM »
Je to tak.

NeptuN

  • I'd be forever young
  • Junior Member
  • ***
  • Posts: 158
Re: Interpretace "test eax eax & jbe"
« Reply #2 on: September 22, 2010, 10:15:28 PM »
2 MazeGen: dik

Absenci kritiky od ostatnich beru jako tichy souhlas.
Knowledges are powerful weapon