ARPL - Nastav pole RPL selektoru

Z Delphi & Pascal (česká wiki)
Verze z 9. 11. 2012, 16:57, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Assembler)
Skočit na navigaci Skočit na vyhledávání
Instrukce
ARPL - Nastav pole RPL selektoru
Časování
10-11 (80286), 20-21 (80386)
Popis
Instrukce ARPL je navržena k tomu, aby zabránila systémovým programům získat prístup k podprogramum s vyšší úrovni priority. První operand instrukce ARPL je 16-bitová paměťová promenná nebo registr délky slova, která(y) obsahuje hodnotu selektoru. Druhý operand je registr o délce slova. Je-li pole RPL (Requested Privilege Level) 1. operandu menší než pole RPL druhého operandu, je příznak nuly (ZF) nastaven do 1. Pole RPL prvního operandu je zvýšeno tak, aby se shodovalo s polem RPL druhého operandu. Jinak je ZF nastaven do 0 a první operand instrukce ARPL není nikterak modifikován.


Syntaxe
ARPL (selektor, CS_selektor)


Ovlivňuje příznaky
ZF


Nedefinované příznaky
žádné


Výjimky v privilegovaném módu
Je-li výsledek v segmentu neprístupnem zápisu, je generována všeobecna výjimka porušení ochrany paměti. Pro nedovolenou efektívni adresu operandu nacházejíci se v registrech CS, DS nebo ES je generov8na rovňež všeobecná výjimka. Jestliže SS obsahuje nedovolenou adresu, je generována výjimečná situace "chyba zásobníku".


Výjimky v reálnem módu
Je generováno přerušení INT 6. Instrukce ARPL není v RM rozpoznána.


Příklad
ARPL MEM_WRD,BX