Kurs programowania w asemblerze


Komendy procesorów

Mnemonik Opis
AAAOpis:
Instrukcja wykonuje korekcję rejestru AL po obliczeniu sumy dwóch niespakowanych liczb w kodzie BCD.
Zobacz:
ADD, AAD, AAM, AAS
AADOpis:
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
AAMOpis:
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
AASOpis:
Wykonuje korekcję rejestru AL po obliczeniu różnicy dwóch nieupakowanych liczb zapisanych w kodzie BCD.
Zobacz:
AAA, AAD, AAM
ADCOpis:
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:
  1. Jeśli rozmiar adresu jest 16-bitowy jako licznik jest używany rejestr CX, jeśli 32-bitowy - rejestr ECX (procesor 80386).
  2. Sprawdzają, czy rejestr CX (ECX) jest równy 0, jeśli tak, to iteracja jest przerywana i następuje skok do następnej instrukcji.
  3. Wykonanie jednorazowej operacji na łańcuchu.
  4. Zmniejszenie (E)CX o 1, bez zmiany rejestru znaczników
  5. Jeśli operacja na łańcuchu jest SCAS lub CMPS to sprawdzają znacznik Z. Jeśli Z nie jest ustawiony (ostatnie porównanie zakończyło się wynikiem negatywnym) to kończą iterację. Dla pozostałych instrukcji sprawdzają jeszcze odpowiednio dla instrukcji REPE(REPZ) czy znacznik Z jest ustawiony, dla instrukcji REPNE(REPNZ) czy znacznik Z jest wyzerowany. Jeśli te warunki są spełnione, to kończą iterację i skaczą do następnej instrukcji.
  6. Wraca do punktu 1, aby wykonać następny krok.
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.
Kontakt

Jeśli chcesz się z nami skontaktować napisz na adres: info(at)binboy.org lub odwiedź nasz profil na Facebooku!

O Nas

Serwis binboy.org to kopalnia wiedzy dla wszystkich z branży IT, w szczególności dla programistów i webmasterów. To duży zbiór kursów programowania, tutoriali, darmowych ebooków, setki kodów źródłowych itp.

Bądź w kontakcie

Panel użytkownika

Zaloguj się do panelu użytkownika.
Nie masz konta? Zarejestruj się!
Zapomniałeś hasła?