XBTS - extrahuj bitový řetezec

Z Delphi & Pascal (česká wiki)
Verze z 24. 1. 2013, 17:42, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Assembler pismeno M-X)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání
Instrukce
XBTS - extrahuj bitový řetezec
Časování
6-13
Popis
Instrukce XBTS extrahuje bitový řetezec a tento řetezec je uložen zarovnaný doprava a rozšírený (t.j. s horními bity nastavenými do nuly) ve specifikovaném registru. Instrukce XBTS má 4 operandy
  • bázovou adresu bitového řetezce
  • bitový offset začátku podřetezce
  • jenž má být extrahován
  • délku extrahovaného podřetezce
  • registr kam má být extrahovaný podřetezec umísten
Bázová adresa může být umístena v registru nebo v paměťovém operandu. Offset je uložen v registru EAX (resp. AX u 16-bitových operandu). Délka pole je daná hodnotou registru CL. Poslední pole instrukce specifikuje všeobecný registr který obsahuje extrahovanou hodnotu.


Syntaxe
XBTS dest, base, offset, length
XBTS reg, reg/mem, (E)AX, CL


Ovlivňuje příznaky
OF, SF, AF, ZF, PF


Nedefinované příznaky
CF


Výjimky v privilegovaném módu
Jestliže operand nemůže být použit v instrukci kvůli porušení limitu segmentu nebo porušení přístupových práv pak je generovaná výjimka INT 13.


Výjimky v reálnem módu
Jestliže operand leží mimo limit segmentu (0FFFFH) je generovaná všeobecná výjimka porušení ochrany paměti.


Příklad
XBTS AX, BX, AX, CL