M E N U
Strona główna Assembler -kurs
Assembler -teksty
AntiCracking
API
Opisy narzędzi
Zabezpieczenia CD/DVD
Budowa plików
Sources
Linki
Kontakt

STATYSTYKI

stat4u
PRV.PL - Twoje miejsce w sieci.
Od 06.09.2000
Optymalizacja:
1024x768, IE5
  • Assembler - kurs

  • Skoki bezwarunkowe i warunkowe
  • Skoki bezwarunkowe
    Instrukcją skoku bezwarunkowego jest jmp.
    Wykonuje ona skok do wskazanego przez etykietę lub bezpośredni adres miejsca pamięci programu. Za pomocą dyrektywy jmp można wywoływać również procedury. Trzeba jednak w pierwszej kolejności umieścić na stosie miejsce, w które ma wrócić procesor po wykonaniu procedury.

    Skoki warunkowe
    Skoki warunkowe wykonywane są tylko wtedy, gdy spełnione są określone warunki.Wszystkie te warunki są określone na znacznikach. Skok nastapi wtedy, gdy określone znaczniki będą miały określone wartości (wyjątkiem jest tutaj instrukcja jcxz, skacząca gdy cx=0). Wiele instrukcji skoków warunkowych wymaga spełnienia tych samych warunków. Wybór jednej z nich zależy wyłącznie od programisty. Poniższa tabelka przedstawia, jakie warunki muszą spełniać znaczniki, aby dany skok nastąpił:

    KodSymbolrxZnaczenieWarunek skoku
    72jb
    jnae
    r8Skok gdy mniejszy
    Skok gdy nie większy lub równy
    CF=1
    73jae
    jnb
    r8Skok gdy większy lub równy
    Skok gdy nie mniejszy
    CF=0
    76jbe
    jna
    r8Skok gdy mniejszy lub równy
    Skok gdy nie większy
    CF=1 lub ZF=1
    77ja
    jnbe
    r8Skok gdy większy
    Skok gdy nie mniejszy lub równy
    CF=0 i ZF=0
    74je
    jz
    r8Skok gdy równyZF=1
    75jne
    jnz
    r8Skok gdy nie równyZF=0
    7Cjl
    jnge
    r8Skok gdy mniejszy(liczby ze znakiem)
    Skok gdy nie większy lub równy
    SF=0
    7Djge
    jnl
    r8Skok gdy nie większy(liczby ze znakiem)
    Skok gdy nie mniejszy
    SF=0
    7Ejng
    jle
    r8Skok gdy mniejszy lub równy
    Skok gdy nie większy(liczby ze znakiem)
    ZF=1 lub SF=0
    7Fjg
    jnle
    r8Skok gdy większy(liczby ze znakiem)
    Skok gdy nie mniejszy lub równy
    ZF=0 lub SF=0
    7Ajp
    jpe
    r8Skok przy parzystościPF=1
    7Bjnp
    jpo
    r8Skok przy braku parzystościPF=0
    78jsr8Skok gdy znak ujemnySF=1
    72jcr8Skok przy przeniesieniuCF=1
    73jncr8Skok przy braku przeniesieniaCF=0
    70jor8Skok przy nadmiarzeOF=1
    71jnor8Skok przy braku nadmiaruOF=0
    E3jcxzr8Skok jeśli rejestr cx=0CX=0
    E3jecxzr8Skok jeśli rejestr ecx=0ECX=0
    OF 82jb
    jnae
    r16/32Skok gdy mniejszy
    Skok gdy nie większy lub równy
    CF=1
    OF 83jae
    jnb
    r16/32Skok gdy większy lub równy
    Skok gdy nie mniejszy
    CF=0
    OF 86jbe
    jna
    r16/32Skok gdy mniejszy lub równy
    Skok gdy nie większy
    CF=1 lub ZF=1
    OF 87ja
    jnbe
    r16/32Skok gdy większy
    Skok gdy nie mniejszy lub równy
    CF=0 i ZF=0
    OF 84je
    jz
    r16/32Skok gdy równyZF=1
    OF 85jne
    jnz
    r16/32Skok gdy nie równyZF=0
    OF 8Cjl
    jnge
    r16/32Skok gdy mniejszy(liczby ze znakiem)
    Skok gdy nie większy lub równy
    SF=0
    OF 8Djge
    jnl
    r16/32Skok gdy nie większy(iczby ze znakiem)
    Skok gdy nie mniejszy
    SF=0
    OF 8Ejng
    jle
    r16/32Skok gdy mniejszy lub równy
    Skok gdy nie większy(liczby ze znakiem)
    ZF=1 lub SF=0
    OF 8Fjg
    jnle
    r16/32Skok gdy większy(liczby ze znakiem)
    Skok gdy nie nie mniejszy lub równy
    ZF=0 lub SF=0
    OF 8Ajp
    jpe
    r16/32Skok przy parzystościPF=1
    OF 8Bjnp
    jpo
    r16/32Skok przy braku parzystościPF=0
    OF 88jsr16/32Skok gdy znak ujemnySF=1
    OF 89jnsr16/32Skok gdy znak dodatniSF=0
    OF 82jcr16/32Skok przy przeniesieniuCF=1
    OF 83jncr16/32Skok przy braku przeniesieniaCF=0
    OF 80jor16/32Skok przy nadmiarzeOF=1
    OF 81jnor16/32Skok przy braku nadmiaruOF=0
    r8 - oznacza 8-bitowy rejestr(argument)
    r16 - oznacza 16-bitowy rejestr(argument)
    r32 - oznacza 32-bitowy rejestr(argument)

    <<

    ©Copyright by zoomek 2001
    Wszelkie prawa zastrzeżone!