Rozdział 1.5.3.7
Rozkazy sterowania
- Sterowanie programem
- JMP - skok bezwarunkowy, zajmuje od kilku do kilkudziesięciu taktów.
- JA,JNBE,JAE,JNB,JB,JNAE,JBE,JNA,JC,JCXZ,JE,JECXZ,JZ,JNC,JNE,JNZ,JNP,JPO,JP,JPE,JG,JNLE,
JGE,JNL,JL,JNGE,JLE,JNG,JNO,JNS,
JNZ,JO,JS - skoki warunkowe warunkowane różnymi warunkami
opartymi na wartościach znaczników, zajmują 1 takt, wyjątkowo JCXZ, JECXZ
6, 5 taktów. Patrz: rodzaj skoku a wartosc znacznikow
- LOOP,LOOPE,LOOPZ,LOOPNE,LOOPNZ - rozkaz pętli z różnymi warunkami przerwania pętli,
liczba powtórzeń zawarta w ECX, zajmuje 7, 8 taktów .
- REP/REPE(Z)/REPNE(Z) - powtarzaj / powtarzaj dopóki równe, tj. ZF=1 / powtarzaj dopóki
różne, tj. ZF=0, liczba powtórzeń w ECX, niekiedy ustawia ZF, jest to rozkaz używany jako przedrostek przed rozkazami łańcuchowymi.
- BOUND - sprawdzenie czy indeks tablicy jest wewnątrz granicy,
jeśli przekracza to wywołanie przerwania INT 5 obsługującego tą sytuację.
- LOCK - uaktywnienie działania przedrostków LOCK rozkazów wspomaga pracę wieloprocesorową,
zajmuje 1 takt
- Podprogramy i przerwania
- CALL - skok do podprogramu, zajmuje od kilku do kilkudziesięciu taktów zależnie od
rodzaju argumentu, który jest adresem bliskim lub dalekim (w innym segmencie).
- RET - powrót bliski lub daleki z podprogramu ze zdjęciem ze
stosu wskaźnika programu EIP, zajmuje od 2 do 23 taktów.
- IRET/IRETD - powrót / daleki powrót z podprogramu z przywróceniem stanu EIP, CS i EFLAGS
ze stosu.
- INT - przerwanie programowe (wywołanie podprogramu obsługi przerwania), zajmuje
kilkanaście lub kilkadziesiąt taktów.
- INTO - wywołanie podprogramu obsługi wyjątku przy nadmiarze to jest jeżeli znacznik OF=1.
- Operacje na znacznikach
- STC/CLC/CMC - ustawianie/zerowanie/negowanie znacznika przeniesienia CF.
- STD - ustawienie znacznika kierunku danych.
- STI - ustawienie znacznika odblokowania przerwań IF .
- CLD/STD - ustawianie znacznika kierunku danych DF na 0 / 1, dane będą ustawiane w
kierunku rosnących/malejących adresów.
- CLI - ustawienie znacznika IF zezwolenia na przerwanie na 0 / 1 .
- CLTS - ustawienie znacznika TS ustawianego po każdym przełączeniu zadań.
- LAHF/SAHF- przesłanie EFLAGS do AH/AH do EFLAGS .
- PUSHF,POPF - przesłania EFLAGS między EFLAGS a stosem.
- Sterowanie systemem
- HLT - zatrzymanie procesora, rozkazy nie są realizowane, wymaga resetowania lub przerwania priorytetowego.
- WAIT - wprowadzenie w stan oczekiwania do chwili pojawienia się sygnału na odpowiedniej końcówce .
- NOP - rozkaz pusty, zajmuje 1 takt, nie jest wykonywana żadna operacja poza zwiększeniem licznika programu o 1.
- RSM - wznowienie pracy z trybu zarządzania systemem, zajmuje 83 takty.
- INVD - opróżnienie pamięci podręcznej, zajmuje 15 taktów.
- WBINVD - opróżnienie pamięci podręcznej, zajmuje kilka tysięcy taktów.
- INVLPG - opróżnienie pamięci TLB, zajmuje 25 taktów .
- VERR/VERW - sprawdzenie segmentu przed odczytem / zapisem, ustawia znacznik ZF, zajmuje 7 taktów.
Powrót do rozdziału 1
Powrót do strony głównej