Skip navigation

Elágazás példák

Egyszerű IF

Számítsuk ki az EAX abszolút értékét!

    CMP     EAX, 0    ; Megvizsgáljuk az EAX értékét
    JGE     tovabb    ; Ha nem negatív akkor kész vagyunk mehetünk tovább
    
    NEG     EAX       ; Ha nem volt ugrás (vagyis EAX negatív) akkor negáljuk
    
tovabb:

Bonyolultabb elágazások

A következő feladat a szignum függvény kiszámítása.

Az Sgn(x) függvény három értéket vehet fel

  • -1: ha x < 0,
  • 0: ha x = 0,
  • 1, ha x > 0.


    CMP     EAX, 0     ; vizsgáljuk az EAX-et
    JL      negativ    ; Ha 0-nál kisebb, akkor megyünk a megfelelő cimkére
    JG      pozitiv    ; Ha 0-nál nagyobb, akkor is

nulla:
    MOV     MOV EAX, 0 ; különben ha EAX==0, akkor nem volt ugrás és itt folytatódik a program
    JMP     vege       ; a művelet után gondoskodnunk kell a többi ág átugrásáról is.

negativ:
    MOV     EAX, -1    ; Ha EAX negatív volt
    JMP     vege       ; A művelet után még kell egy ugrás, hogy a pozitív ág ne fusson le

pozitiv:
    MOV     EAX, 1     ; Ha EAX pozitív volt (utána már, végeztünk nem kell több ugrás)
vege: