Kurs programowania w asemblerze
Komendy procesorów
| Mnemonik | Opis |
|---|---|
| AAA | Opis: Instrukcja wykonuje korekcję rejestru AL po obliczeniu sumy dwóch niespakowanych liczb w kodzie BCD. Zobacz: ADD, AAD, AAM, AAS |
| AAD | Opis: Instrukcja wykonuje korekcję przed wykonaniem operacji dzielenia. Do rejestru AL zapisujemy mniej znaczącą cyfrę liczby, a do rejestru AH - bardziej znaczącą. Zobacz: AAA, AAM, AAS |
| AAM | Opis: Wykonuje korekcję liczby znajdującej się w rejestrze AX po wykonaniu mnożenia. Bardziej znaczącą cyfrę umieszczamy do rejestru AH, mniej znaczącą do AL. Zobacz: AAA, AAD, AAS |
| AAS | Opis: Wykonuje korekcję rejestru AL po obliczeniu różnicy dwóch nieupakowanych liczb zapisanych w kodzie BCD. Zobacz: AAA, AAD, AAM |
| ADC | Opis: Instrukcja oblicza sumę dwóch liczb, z ewentualnym dodaniem 1, przy ustawionym znaczniku przeniesienia C.Wynik zostaje umieszczony w pierwszym operandzie. Zobacz: ADD, AAA |
| ADD | Opis: Instrukcja oblicza sumę dwóch liczb, bez uwzględnienia przeniesienia i zapisanie wyniku w pierwszym operandzie. Zobacz: ADC , AAA |
| AND | Opis: Instrukcja oblicza iloczyn logiczny dla wszystkich odpowiadających sobie bitów. Zobacz: NOT , XOR , OR , TEST |
| ARPL | Opis: Instrukcja testuje poziomu uprzywilejowania. Jeśli pole RPL jest mniejsze niż pole RPL drugiego argumentu, to ustawiany zostaje znacznik Z, a pole RPL pierwszego argumentu przyjmuje wartość RPL drugiego. Działa na procesora 80286 i nowszych. |
| BOUND | Opis: Rozkaz sprawdza, czy indeks zawarty w rejestrze mieści się w przedziale określonym przez dwie kolejne komórki wskazywane przez drugi argument. Jeśli nie, to wywoływane jest przerwanie o numerze 5. |
| BSF | Opis: Instrukcja szuka pierwszego ustawionego bitu w kolejności naturalnej. Rozkaz sprawdza bity drugiego argumentu, zaczynając od bitu 0. Jeśli wszystkie bity są wyzerowane, to znacznik Z jest również zerowany, w przeciwnym wypadku znacznik Z jest ustawiany, a do pierwszego operanda wpisywany jest numer pierwszego bitu, który nie był wyzerowany. Funkcja weszła od procesorów 80386. Zobacz: BSR |
| BSR | Opis: Instrukcja szuka pierwszego ustawionego bitu w kolejności odwrotnej. Sprawdza bity drugiego argumentu, zaczynając od bitu najbardziej znaczącego (7). Jeśli wszystkie bity są wyzerowane zerowany jest także znacznik Z, w przeciwnym wypadku Z zostaje ustawiony, a w pierwszym operandzie wpisywany jest numer pierwszego bitu, który nie był wyzerowany. Procesory 80386 lub nowsze. Zobacz: BSF |
| BSWAP | Opis: Rozkaz wymienia kolejność od najmniej do najbardziej znaczącego bitu w rejestrze na kolejność od najbardziej do najmniej znaczącego. Polecenie występuje w procesorach 80486 i nowszych. |
| BT | Opis: Funkcja kopiuje bit z pierwszego argumentu do znacznika C. Numer bitu jest przekazywany w drugim argumencie. Procesory 80386 i nowsze. Zobacz: BTC , BTR , BTS |
| BTC | Opis: Instrukcja kopiuje bit z pierwszego argumentu do znacznika C i wpisuje w jego miejsce bit przeciwny. Numer bitu jest przekazywany w drugim argumencie. Procesory 80386 i nowsze. Zobacz: BT , BTR , BTS |
| BTR | Opis: Funkcja kopiuje bit z pierwszego argumentu do znacznika C, a następnie w jego miejsce wpisuje 0. Numer bitu jest przekazywany w drugim argumencie. Procesory 80386 i nowsze. Zobacz: BT , BTC , BTS |
| BTS | Opis: Rozkaz kopiuje bit z pierwszego argumentu do znacznika C, a następnie w jego miejsce wpisuje 1. Numer bitu jest przekazywany w drugim argumencie. Funkcja występuje na procesorach 8086 i nowszych. Zobacz: BT , BTC , BTR |
| CALL | Opis: Instrukcja wykonuje skok do procedury. Po powrocie z procedury wykonywana jest następna w kolejności instrukcja. |
| CBW | Opis: Funkcja zamienia bajt na słowo. Przekształca liczbę z rejestru AL bez zmiany jej wartości na słowo i umieszczenie w rejestrze AX. |
| CLC | Opis: Rozkaz powoduje wyzerowanie znacznika przeniesienia C. Zobacz: STC |
| CLD | Opis: Instrukcja powoduje wyzerowanie znacznika kierunku D. Zobacz: STD |
| CLI | Opis: Instrukcja powoduje wyzerowanie znacznika zezwolenia na przerwanie I. Zobacz: STI |
| CLTS | Opis: Instrukcja zeruje znacznik TS w słowie stanu. Można go używać w trybie wirtualnym procesora, na najwyższym poziomie uprzywilejowania. Procesory 80286 i nowsze. |
| CMC | Opis: Rozkaz zamienia wartość znacznika przeniesienia C na przeciwną. |
| CMP | Opis: Instrukcja porównuje dwa argumenty. Rozkaz odejmuje zawartość pierwszego argumentu od drugiego, jednak nie zapisuje nigdzie wyniku, a tylko ustawia odpowiednio znaczniki. |
| CMPS
CMPSB CMPSW CMPSD |
Opis: Funkcja porównuje komórki ES:[(E)SI] i DS:[(E)SI] oraz zmniejsza (E)DI i (E)SI o rozmiar porównanych komórek, jeśli znacznik kierunku D jest ustawiony lub zwiększa jeśli D jest wyzerowany. Instrukcja poprzedzona przedrostkiem REP może służyć do porównywania łańcuchów. Funkcja CMPSB porównuje bajty (rozmiar 1), CMPSW - słowa (rozmiar 2), CMPSD - słowa podwójne (rozmiar 4). Instrukcja CMPSD występuje od procesora 80386 w górę. |
| CMPXCHG | Opis: Rozkaz porównuje dwa argumenty, a następnie wymienia ich zawartości między sobą. Polecenie na procesory 80486 i nowsze. |
| CWD | Opis: Rozkaz zmienia słowo ze znakiem z rejestru AX, na podwójne słowo ze znakiem i zapisuje w DX:AX. Procesory 80386. |
| CWDE | Opis: Rozkaz zmienia słowo ze znakiem z rejestru AX, na podwójne słowo ze znakiem zapisując wynik w rejestrze EAX. Funkcja występuje w procesorach 80386 i nowszych. |
| DAA | Opis: Rozkaz dokonuje korekcji dziesiętnej, po umieszczeniu w rejestrze AL sumy dwóch upakowanych cyfr w kodzie BCD . |
| DAS | Opis: Instrukcja dokonuje korekcji dziesiętnej po umieszczeniu w rejestrze AL różnicy. |
| DEC | Opis: Rozkaz zmniejsza operand o 1. Nie ustawia znacznika C. |
| DIV | Opis: Funkcja dzieli liczbę bez znaku. Wersja 8, 16 lub 32 bitowa dzieli liczbę znajdującą się odpowiednio w AX, DX:AX, EDX:EAX przez operand i umieszcza wynik z dzielenia. |
| ENTER | Opis: Instrukcja tworzy przestrzeń na stosie dla zmiennych lokalnych. Pierwszy parametr określa rozmiar potrzebnej pamięci, drugi definiuje poziom podprogramu. |
| HLT | Opis: Rozkaz zatrzymuje wykonywanie następnych rozkazów i powoduje oczekiwanie na przerwanie. |
| IDIV | Opis: Funkcja dzieli liczbę ze znakiem. Wersja 8, 16 lub 32 bitowa dzieli liczbę znajdującą się odpowiednio w AX, DX:AX, EDX:EAX przez operand i umieszcza wynik z dzielenia w AL (AX, EAX), a resztę z dzielenia w AH DX lub EDX. |
| IMUL | Opis: Rozkaz wykonuje mnożenie dwóch liczb ze znakiem. Wynik zostaje umieszczony w pierwszym operandzie. Jeśli posiada tylko jeden argument (8, 16 lub 32 bitowy) to w zależności jest on mnożony przez AL (AX, EAX), a wynik umieszczany w AX (DX:AX, EDX:EAX). W wersji z trzema argumentami rozkaz mnoży drugi argument przez trzeci i umieszcza wynik w pierwszym. Jeśli rezultat nie mieści się w rejestrze docelowym, ustawiany zostaje znacznik C. |
| IN | Opis: Instrukcja służy do czytania z portu. Umieszcza wartość przeczytaną z porty o numerze przekazanym jako drugi argument do rejestru AL (AX, EAX). |
| INC | Opis: Rozkaz zwiększa operand o 1. Nie ustawia znacznika przeniesienia C. |
|
INS
INSB INSW INSD |
Opis: Instrukcja powoduje wprowadzenie z portu o numerze podanym w rejestrze DX jednego bajta (słowa, słowa podwójnego) pod adres ES:[(E)DI] i zwiększenie jeśli znacznik D był wyzerowany lub zmniejszenie jeśli znacznik D był ustawiony rejestru (E)DI o 1 (2 lub 4). |
|
INT
INTO |
Opis: Instrukcja INT wywołuje program obsługi przerwania o danym numerze. Instrukcja INTO natomiast wywołuje przerwanie o numerze 4 w przypadku, gdy ustawiony jest znacznik O. Instrukcje powodują przesłanie na stos rejestr znaczników, wyzerowanie I i T, zapamiętanie na stosie rejestrów CS i IP oraz daleki skok pod adres wskazywany w tablicy wektorów przerwań. |
| INVD | Opis: Rozkaz uniemożliwia zablokowanie danych. |
| INVLPG | Opis: Instrukcja likwiduje TLP pod danym adresem. |
| IRET
IRETD |
Opis: Instrukcje powrotu z procedury obsługi przerwania. powodują zdjęcie ze stosu rejestrów IP, CS oraz rejestru znaczników. Instrukcja IRETD działa na procesorach 80386. |
| Jcc | Opis: Instrukcje dokonują skoku pod odpowiedni adres w pamięci jeśli spełniony jest określony warunek. Kliknij tutaj . |
| JMP | Opis: Rozkaz powoduje bezwarunkowy skok pod podany adres. |
| LAHF | Opis: Funkcja ładuje mniej znaczący bajt rejestru znaczników do rejestru AH. |
| LAR | Opis: Rozkaz ładuje do rejestru prawo dostępu. Drugi argument musi przedstawiać selektor. Jeśli deskryptor znajduje się wewnątrz odpowiedniej tablicy, to zostanie ustawiony znacznik Z, a bajt dostępu do deskryptora zostanie załadowany do dolnego bajta pierwszego operanda. W przeciwnym wypadku znacznik Z zostaje wyzerowany. |
| LEA | Opis: Funkcja oblicz offset adresu drugiego argumentu i ładuje go do pierwszego operanda. |
|
LES
LDS LGS LSS LFS |
Opis: Instrukcje czytają pełny wskaźnik z pamięci (drugi argument) i umieszczają go w parze rejestrów ES(DS,GS, SS, FS):rejestr (pierwszy argument). Trzy ostatnie z nich działają tylko na procesorach 80386. |
| LEAVE | Opis: Instrukcja jest odwrotna do ENTER. Zwalnia pamięć na stosie przydzieloną poprzednio przed wywołaniem procedury wysokiego poziomu. |
| LGDT
LIDT |
Opis: Rozkazy ładują do rejestru GDTR/IDTR zawartość 6 bajtów. Są to jedynie rozkazy trybu wirtualnego operujące fizycznym adresem. Są one wykorzystywane tylko w oprogramowaniu systemowym. |
| LLDT | Opis: Rozkaz ładuje rejestr LDTR. Operand powinien zawierać selektor do globalnego deskryptora. Jeśli deskryptor ten zawiera tablicę LDT to odpowiednie dane zostaną przesłane do LDTR. |
| LMSW | Opis: Instrukcja powoduje przesłanie argumentu do rejestru stanu procesora MSW. Umożliwia ona na przykład przejście procesora z trybu rzeczywistego do trybu wirtualnego. Jest używana tylko w oprogramowaniu systemowym. |
| LOCK | Opis: Funkcja powoduje zablokowanie wszelkich dodatkowych operacji komputera podczas wykonywania rozkazu następującego po niej. Jest przydatne jeśli musimy zmienić od razu parę rejestrów wskazujących segment i offset adresu. |
| LODS
LODSB LODSW LODSD |
Opis: Instrukcje powodują załadowanie do rejestru AL (AX lub EAX) bajta (słowa, słowa podwójnego) spod adresu DS:[(E)SI]. Jeśli znacznik D jest ustawiony to zmniejszają, a jeśli wyzerowany, zwiększają zawartość rejestru (E)SI o 1 (2. 4). |
| LOOP
LOOPc |
Opis: Rozkazy pętli. Zmniejszają zawartość rejestru (E)CX o 1, a następnie jeśli rejestr ten nie jest równy zeru oraz spełniony warunek podany w rozkazie skaczą pod odpowiedni adres. |
| LSL | Opis: Instrukcja powoduje załadowanie do pierwszego operanda rozmiaru segmentu. Drugi argument musi zawierać selektor segmentu i wskazywać na prawa dostępu. W przypadku prawidłowego przebiegu operacji znacznik Z zostaje ustawiony. |
| LTR | Opis: Rozkaz ładuje rejestr TR (ang. Task Register - rejestr zadania) przez zawartość argumentu.Właściwy dla zadania segmentu oznacza się jako aktywny. Nie powoduje przełączania zadań. Rozkaz powinien być stosowany tylko w oprogramowaniu systemowym. |
| MOV | Opis: Rozkaz powoduje przesłanie wartości drugiego operanda do pierwszego. Funkcja przesyła dane między rejestrami ogólnego przeznaczenia, z rejestrami specjalnymi: CR0/CR2/CR3 - rejestry kontrolne. DR0, DR1, DR2, DR3, DR6, DR7 - rejestry "odpluskiwania" TR6, TR7 - rejestry testowe. |
| MOVS
MOVSB MOVSW MOVSD |
Opis: Instrukcja powoduje przekopiowanie do komórki ES:(E)DI] wartości DS(E)SI] oraz zmniejszenie (E)DI i (E)SI o rozmiar komórki, jeśli znacznik kierunku D jest ustawiony, lub zwiększenie (E)SI i (E)DI o rozmiar komórek jeden jeśli D jest wyzerowany. Instrukcja poprzedzona przedrostkiem REP może służyć do kopiowania łańcuchów. Instrukcja MOVSB kopiuje bajty (rozmiar 1), MOVSW - słowa (rozmiar 2), MOVSD - słowa podwójne (rozmiar 4). |
| MOVSX | Opis: Instrukcja pobiera wartość drugiego argumentu traktując ją jako liczbę ze znakiem i odpowiednio rozszerza (poprzez powielenie najbardziej znaczącego bitu) bez zmiany wartości, ładując do pierwszego operanda. |
| MOVZX | Opis: Instrukcja pobiera wartość drugiego argumentu traktując ją jako liczbę bez znaku i odpowiednio rozszerza (poprzez powielenie zer) bez zmiany wartości, ładując do pierwszego operanda. |
| MUL | Opis: Rozkaz wykonuje mnożenie dwóch liczb bez znaku. Wynik umieszcza w pierwszym operandzie. Jeśli argument jest 8, 16 lub 32 bitowy, to jest mnożony przez zawartość rejestru AL, AX bądź EAX, a wynik jest umieszczany w AX, DX:AX lub EDX:EAX. Jeśli rezultat nie mieści się w rejestrze docelowym, to znacznik C zostaje ustawiony. |
| NEG | Opis: Funkcja zamienia zawartość operanda na jego dwójkowe dopełnienie. Operand jest odejmowany od zera, a wynik umieszcza w operandzie. |
| NOP | Opis: Instrukcja pusta. Inna jej forma to XCHG (E)AX, (E)AX. |
| NOT | Opis: Rozkaz powoduje zanegowanie operanda, wpisując na miejsce każdego bitu, bit jemu przeciwny. |
| OR | Opis: Rozkaz wykonuje operację sumy logicznej na każdej parze odpowiadających sobie bitów dwóch operandów i umieszcza wynik w pierwszym operandzie. |
| OUT | Opis: Instrukcja przenosi bajt lub słowo z rejestru AL (AX, EAX) do portu, którego numer podany jest jako pierwszy argument. Jeśli argumentem tym jest stała, to możliwy jest dostęp tylko do portów 0-255. |
| OUTS
OUTSB OUTSW OUTSD |
Opis: Instrukcje powodują wprowadzenie do portu o numerze podanym w DX jednego bajta (słowa, słowa podwójnego) z adresu ES:[(E)DI] i zwiększenie jeśli znacznik D jest równy 0 lub zmniejszenie jeśli znacznik jest ustawiony o 1 (2,4). |
| POP | Opis: Procedura zdejmuje rejestr lub komórkę ze stosu. Nie istnieje instrukcja POP CS. Do zdjęcia tego rejestru służy funkcja RET. |
| POPA
POPAD |
Opis: Instrukcje zdejmują ze stosu wszystkie rejestry ogólnego przeznaczenia. |
| POPF
POPFD |
Opis: Instrukcje zdejmują ze stosu rejestr znaczników. |
| PUSH | Opis: Rozkaz kładzie na stos rejestr lub komórkę pamięci. |
| PUSHA
PUSHAD |
Opis: Rozkaz kładzie na stos wszystkie rejestry ogólnego przeznaczenia. |
| PUSHF
PUSHFD |
Opis: Rozkaz kładzie na stos rejestr znaczników. |
|
RCL
RCR ROR ROL |
Opis: Każda z tych instrukcji powoduje przesunięcie cykliczne pierwszego operanda o taką ilość bitów, jaka jest przekazana w drugim argumencie. Rozkazy RCL i RCR powodują odpowiednio: przesunięcie w lewo i prawo z uwzględnieniem znacznika C, to znaczy wartość C jest przekazywana do pierwszego bitu obracanego bajta, a wartość ostatniego bitu jest przekazywana do C. Rozkazy ROL i ROR również powodują obrót w lewo lub prawo, a ostatni bit jest kopiowany do pierwszego i do znacznika C. Znacznik O jest ustawiony tylko dla pojedynczych wersji rozkazu. Dla przesunięcia w lewo I jest ustawiane, jeśli znacznik C i najbardziej znaczący bit wyniku są różne. Dla przesunięcia w prawo O jest ustawiany, jeśli dwa najbardziej znaczące bity wyniku są od siebie różne. |
|
REP
REPE REPZ REPNE REPNZ |
REP
(powtarzaj). REPE (powtarzaj dopóki równe), REPNE
(powtarzaj dopóki nie równe) są prefiksami
poprzedzającymi instrukcje na łańcuchach. Ich
działanie jest następujące:
|
|
RET
RETF |
Opis: Instrukcja powrotu (dalekiego lub bliskiego) z procedury. Polega na załadowaniu rejestru IP ( i ewentualnie CS) wartościami zdjętymi ze stosu.Opcjonalny parametr oznacza liczbę bajtów (a trybie adresowania 32-biotowego liczbę słów), które rozkaz ma zdjąć ze stosu. |
| SAHF | Opis: Rozkaz powoduje załadowanie dolnego bajta rejestru znaczników zawartością rejestru AH |
|
SAL
SAR SHL SHR |
Opis: Instrukcja SAL (SHL) obraca pierwszy operand w lewo. Najbardziej znaczący bit jest przekazywany do znacznika C, a najmniej znaczący jest ustawiony na 0. SHR i SAL obracają operand w lewo. Najmniej znaczący bajt jest przekazywany do znacznika C. Instrukcja SHR powiela najbardziej znaczący bit, natomiast instrukcja SAR zeruje go. Drugi argument zawiera liczbę powtórzeń operacji. Znacznik O jest ustawiany tylko w przypadku pojedynczych wersji rozkazu. Dla przesunięcia w lewo wskaźnik O jest ustawiany jeśli najbardziej znaczący bit rezultatu jest różny od znacznika C. Dla SHR do O jest kopiowana zawartość najbardziej znaczącego bitu operanda. Dla SAR jest zawsze zerowany. |
| SBB | Opis: Odejmowanie z uwzględnieniem przeniesienia. Rozkaz dodaje do znacznika C, a wynik odejmuje od pierwszego operanda. Wynik końcowy jest umieszczany w pierwszym operandzie. |
| SCAS
SCASB SCASW SCASD |
Opis: Instrukcje powodują odjęcie od rejestru AL (AX, EAX) zawartości bajta (słowa, słowa podwójnego) spod adresu ES:[(E)DI]. Wynik nie jest nigdzie zapisywany, tylko na jego podstawie instrukcje ustawiają znaczniki. Jeśli D jest ustawiony to po wykonaniu odejmowania zmniejszają, a jeśli jest równy 0, zwiększają zawartość rejestru (E)DI o 1 (2, 4). |
| SETcc | Opis: Instrukcje przesyłają do operanda bajt zawierający 1, jeśli odpowiedni warunek jest spełniony, w przeciwnym razie przesyłają bajt równy 0. |
| SGDT
SIDT |
Opis: Rozkazy kopiują rejestr GDTR/IDTR do sześciu bajtów pamięci wskazanych przez operand. Są to jedynie rozkazy trybu wirtualnego operującego na fizycznym adresem. Są one wykorzystywane tylko w oprogramowaniu systemowym. |
| SHLD | Opis: Przeniesienie logiczne w lewo danej złożonej ze skonkatentowanego pierwszego i drugiego operanda. Trzeci argument określa liczbę powtórzeń operacji. |
| SLDT | Opis: Rozkaz kopiuje rejestr LDTR do operanda. |
| SMSW | Opis: Instrukcja powoduje kopiowanie stanu procesora MSW do operanda. Jest używana tylko w programach systemowych. |
| STC | Opis: Rozkaz ustawia znacznik przeniesienia C. Zobacz: CLC |
| STD | Opis: Rozkaz ustawia znacznik kierunku D. Zobacz: CLD |
| STI | Opis: Rozkaz ustawia znacznik zezwolenia na przerwanie I. Zobacz: CLI |
| STOS
STOSB STOSW STOSD |
Opis: Instrukcje powodują przesłanie zawartości rejestru (AX,EAX) do bajta (słowa, słowa podwójnego) spod adresu ES:(E)DI]. Jeśli znacznik D jest ustawiony to zmniejszają, a jeśli wyzerowany, zwiększają zawartość rejestru (E)DI o 1 (2, 4); |
| STR | Opis: Rozkaz kopiuje zawartość rejestru TR do operanda. Rozkaz powinien być stosowany tylko w oprogramowaniu systemowym. |
| SUB | Opis: Odejmowanie bez uwzględniania. Rozkaz odejmuje drugi argument od pierwszego. Wynik odejmowania jest umieszczany w pierwszym operandzie. Zobacz: ADD |
| TEST | Opis: Rozkaz oblicza iloczyn logiczny dla wszystkich odpowiadających sobie par bitów. Wynik nie jest nigdzie zapisywany, tylko na jego podstawie ustawiane są znaczniki. Zobacz: AND , OR , NOT , XOR |
| VERR
VERW |
Opis: Instrukcje określają, czy segment wskazywany przez selektor znajdujący się w operandzie jest dostępny z bieżącego poziomu uprzywilejowania dla odczytu (VERR) lub zapisu (VERW). W przypadku pozytywnej odpowiedzi znacznik Z jest ustawiany, w przeciwnym wypadku zerowany. |
| WAIT | Opis: Rozkaz zawiesza wykonywanie rozkazów, następnie po odebraniu sygnału końca pracy urządzenia zewnętrznego (najczęściej koprocesora). |
| WBINVD | Opis: Ponowny zapis i unieważnienie zablokowania danych. |
| XADD | Opis: Rozkaz wymienia zawartość obu operandów i dodaje je do siebie. |
| XCHG | Opis: Rozkaz wymienia zawartość operandów między sobą. |
| XLAT
XLATB |
Opis: Rozkaz ładuje do rejestru AL zawartość elementu tablicy. Przed wykonaniem rozkazu tablica jest wskazywana przez DS:(E)BX, a numer elementu znajduje się w AL. Można to zapisać AL:=DS[byte ptr BX+AL] |
| XOR | Opis: Rozkaz oblicza sumę symetryczną dla wszystkich odpowiadających sobie par bitów. Wynik jest zapisywany w pierwszym operandzie. Zobacz: AND , TEST , OR , NEG |
Warunki
| Instrukcja | Opis |
|---|---|
| JB/JNAE rel8 | Skok gdy mniejszy Skok gdy nie większy lub równy C=1 |
| JAE/JNB rel8 | Skok gdy
większy lub równy Skok gdy nie mniejszy C=0 |
| JBE/JNA rel8 | Skok gdy
mniejszy lub równy Skok gdy nie większy C=1 lub Z=1 |
| JA/JNBE rel8 | Skok gdy
większy Skok nie mniejszy lub równy C=0 i Z=0 |
| JE/JZ rel8 | Skok gdy
równy Z=1 |
| JNE/JNZ rel8 | Skok gdy
nie równy Z=0 |
| JL/JNGE rel8 | Skok gdy
mniejszy (liczby ze znakiem) Skok gdy nie większy lub równy S=0 |
| JGE/JNL rel8 | Skok gdy
nie większy (liczby ze znakiem) Skok gdy nie mniejszy S=0 |
| JNG/JLE rel8 | Skok gdy
mniejszy lub równy Skok gdy nie większy (liczby ze znakiem) Z=1 lub S=0 |
| JG/JNLE rel8 | Skok gdy
większy (liczby ze znakiem) Skok gdy nie mniejszy lub równy Z=0 i S=0 |
| JP/JPE rel8 | Skok przy
parzystości P=1 |
| JNP/JPO rel8 | Skok przy
braku parzystości P=0 |
| JS rel8 | Skok gdy
znak ujemny S=1 |
| JNS rel8 | Skok gdy
znak dodatni S=0 |
| JC rel8 | Skok przy
przeniesieniu C=1 |
| JNC rel8 | Skok przy
braku przeniesienia C=0 |
| JO rel8 | Skok przy
nadmiarze O=1 |
| JNO rel8 | Skok przy
braku nadmiaru O=0 |
| JCXZ rel8 | Skok jeśli
rejestr CX=0 CX=0 |
| JECXZ rel8 | Skok jeśli
rejestr ECX=0 (tylko procesory 80386) ECX=0 |
| JB/JNAE rel16/32 | Skok gdy
mniejszy Skok gdy nie większy lub równy C=1 |
| JAE/JNB rel16/32 | Skok gdy
większy lub równy Skok gdy nie mniejszy C=0 |
| JBE/JNA rel16/32 | Skok gdy
mniejszy lub równy Skok gdy nie większy C=1 lub Z=1 |
| JA/JNBE rel16/32 | Skok gdy
większy Skok gdy nie mniejszy lub równy C=0 i Z=0 |
| JE/JZ rel16/32 | Skok gdy
równy Z=1 |
| JNE/JNZ rel16/32 | Skok gdy
nie równy Z=0 |
| JL/JNGE rel16/32 | Skok gdy
mniejszy (liczby ze znakiem) Skok gdy nie większy lub równy S=0 |
| JGE/JNL rel16/32 | Skok gdy
nie większy (liczby ze znakiem) Skok gdy nie mniejszy S=0 |
| JNG/JLE rel16/32 | Skok gdy
mniejszy lub równy Skok gdy nie większy (liczby ze znakiem) Z=1 i S=0 |
| JG/JNLE rel16/32 | Skok gdy
nie większy (liczby ze znakiem) Skok gdy nie mniejszy lub równy Z=0 i S=0 |
| JP/JPE rel16/32 | Skok przy
parzystości P=1 |
| JNP/JPO rel16/32 | Skok przy
braku parzystości P=0 |
| JS rel16/32 | Skok gdy
znak ujemny S=1 |
| JNS rel16/32 | Skok gdy
znak dodatni S=0 |
| JC rel16/32 | Skok przy
przeniesieniu C=1 |
| JNC rel16/32 | Skok przy
braku przeniesienia C=0 |
| JO rel16/32 | Skok przy
nadmiarze O=1 |
| JNO rel16/32 | Skok przy
braku nadmiaru O=0 |
Instrukcje PENTIUM - Opis instrukcji procesorów PENTIUM
Intel - Dokładny opis wszystkich instrukcji procesora 23.KB
Opcodes - Opis instrukcji procesora (Pentium) 37.6KB
Autor: Karol Wierzchołowski, opracowano: 12.01.2002 r. Wszelkie prawa zastrzeżone.
