Instrukcje procesorów rodziny 80x86 (B)
Dryobates
BOUND | Array Index Bound Check (80188+) | ||||
Użycie | BOUND src,limit | ||||
Modyfikowane flagi | Brak | ||||
Instrukjca sprawdza, czy indeks tablicy podany w src mieści się w przedziale wyznaczanym przez wartości typu word (lub dword) znajdujące się w pamięci pod adresami limit oraz limit+2 (lub + 4). Jeżeli indeks jest spoza przedziału wywoływane jest przerwanie nr 5. (np. przy tablicy array [10..200] of Byte ułatwia sprawdzenie, czy indeks jest w prawidłowym zakresie. Zwykle zakres umieszczany jest tuż przed tablicą) | |||||
nj = no jump taken | Liczba cykli zegara | Rozmiar | |||
Parametry | 808x | 286 | 386 | 486 | Bajtów |
reg16,mem32 | - | nj=13 | nj=10 | 7 | 2 |
reg32,mem64 | - | nj=13 | nj=10 | 7 | 2 |
BSF | Bit Scan Forward (386+) | ||||
Użycie | BSF dest,src | ||||
Modyfikowane flagi | ZF | ||||
Skanuje src w poszukiwaniu pierwszego bitu równego 1. Uzstawia Zero Flag (ZF=1) jeżeli znajdzie taki bit oraz zapisuje w dest nr pierwszego znalezionego bitu. Czyści ZF (ZF=0) jeżeli żaden bit nie jest ustawiony. BSF skanuje od najmniej znaczącego bitu (0-n), podczas gdy BSR skanuje odwrotnie(n-0). | |||||
Liczba cykli zegara | Rozmiar | ||||
Parametry | 808x | 286 | 386 | 486 | Bajtów |
reg,reg | - | - | 10+3n | 6-42 | 3 |
mem, reg | - | - | 10+3n | 7-42 | 3-7 |
reg32,reg32 | - | - | 10+3n | 6-42 | 3-7 |
reg32,mem32 | - | - | 10+3n | 7-43 | 3-7 |
BSR | Bit Scan Reverse (386+) | ||||
Użycie | BSR dest,src | ||||
Modyfikowane flagi | ZF | ||||
Skanuje src w poszukiwaniu pierwszego bitu równego 1. Uzstawia Zero Flag (ZF=1) jeżeli znajdzie taki bit oraz zapisuje w dest nr pierwszego znalezionego bitu. Czyści ZF (ZF=0) jeżeli żaden bit nie jest ustawiony. BSF skanuje od najmniej znaczącego bitu (0-n), podczas gdy BSR skanuje odwrotnie(n-0). | |||||
Liczba cykli zegara | Rozmiar | ||||
Parametry | 808x | 286 | 386 | 486 | Bajtów |
reg,reg | - | - | 10+3n | 6-103 | 3 |
mem, reg | - | - | 10+3n | 7-104 | 3-7 |
reg32,reg32 | - | - | 10+3n | 6-103 | 3-7 |
reg32,mem32 | - | - | 10+3n | 7-104 | 3-7 |
BSWAP | Byte Swap (486+) | ||||
Użycie | BSWAP reg32 | ||||
Modyfikowane flagi | Brak | ||||
Zamienia ważniejsze 16 bitów rejestrów 32-bitowych z mniej znaczącymi i odwrotnie. Jeżeli wartość jest 16 bitowa, to wynik jest nieokreślony | |||||
Liczba cykli zegara | Rozmiar | ||||
Parametry | 808x | 286 | 386 | 486 | Bajtów |
reg32 | - | - | - | 1 | 2 |
BT | Bit Test (386+) | ||||
Użycie | BT dest,src | ||||
Modyfikowane flagi | CF | ||||
Bit z dest o numerze wskazywanym przez src jest kopiowany do Carry Flag (CF = dest[src]). | |||||
Liczba cykli zegara | Rozmiar | ||||
Parametry | 808x | 286 | 386 | 486 | Bajtów |
reg16,immed8 | - | - | 3 | 3 | 4-8 |
mem16,immed8 | - | - | 6 | 6 | 4-8 |
reg16,immed8 | - | - | 3 | 3 | 3-7 |
mem16,reg16 | - | - | 12 | 12 | 3-7 |
BTC | Bit Test with Compliment (386+) | ||||
Użycie | BTC dest,src | ||||
Modyfikowane flagi | CF | ||||
Zanegowany bit z dest o numerze wskazywanym przez src jest kopiowany do Carry Flag (CF = not dest[src]). | |||||
Liczba cykli zegara | Rozmiar | ||||
Parametry | 808x | 286 | 386 | 486 | Bajtów |
reg16,immed8 | - | - | 6 | 6 | 4-8 |
mem16,immed8 | - | - | 8 | 8 | 4-8 |
reg16,reg16 | - | - | 6 | 3 | 3-7 |
mem16,reg16 | - | - | 13 | 13 | 3-7 |
BTR | Bit Test with Reset (386+) | ||||
Użycie | BTR dest,src | ||||
Modyfikowane flagi | CF | ||||
Bit z dest o numerze wskazywanym przez src jest kopiowany do Carry Flag (CF = dest[src]) i ustawiany na 0 w dest (dest[src] = 0) | |||||
Liczba cykli zegara | Rozmiar | ||||
Parametry | 808x | 286 | 386 | 486 | Bajtów |
reg16,immed8 | - | - | 6 | 6 | 4-8 |
mem16,immed8 | - | - | 8 | 8 | 4-8 |
reg16,reg16 | - | - | 6 | 3 | 3-7 |
mem16,reg16 | - | - | 13 | 13 | 3-7 |
BTS | Bit Test and Set (386+) | ||||
Użycie | BTS dest,src | ||||
Modyfikowane flagi | CF | ||||
Bit z dest o numerze wskazywanym przez src jest kopiowany do Carry Flag (CF = dest[src]) i ustawiany na 1 w dest (dest[src] = 1) | |||||
Liczba cykli zegara | Rozmiar | ||||
Parametry | 808x | 286 | 386 | 486 | Bajtów |
reg16,immed8 | - | - | 6 | 6 | 4-8 |
mem16,immed8 | - | - | 8 | 8 | 4-8 |
reg16,reg16 | - | - | 6 | 3 | 3-7 |
mem16,reg16 | - | - | 13 | 13 | 3-7 |
Instrukcje procesorów rodziny 80x86 (B)
GoMovies