- 16 bitový procesor
- 1978 - 1982
- základní procesor řady INTEL x86
- frekvence max. 10 MHz
Procesor 8088
- 16 bitový procesor určený do 8 bitového prostředí
- Little-Endian (na nižší adrese nižší řád)
- Umíme pracovat s 32 bitovými daty (ale ne nativně)
- Procesor má 20 bitovou adresu –> max paměť = 1MB
- Adresa, kterou programátor používá je offset, je maximálně 16 bitový.
- Program rozdělen na instrukce, data, zásobník; každý má max. 64KB.
- Pro určení se kterou částí pracujeme, používáme segmenty.
- Segment = adresa, kde v paměti je uložena naše část, 20 bitová, ale funkčních pouze 16 vrchních bitů (dolní 4 bity jsou 0; musí být dělitelná 16; zvedneme-li segmentovou adresu o 1, zvýšíme reálnou adresu o 16).
- Offset = začíná nulou, funkčních pouze nižších 16 bitů (vrchní 4 bity jsou 0).
- Procesor má vlastní 20 bitovou adresovou aritmetiku. Sečte segment a offset, (segment má dolní 4 bity nula). Kdybychom sečetli 2 čísla, jejich výsledek by měl být větší jak 20 bitů, dojde k přetečení a číslo se vrátí k nule.
- Zapisujeme ve tvaru
segment : offset, zápis 01A5:0012 představuje 20 bitovou adresu 01A62
- Nové segmentové registry:
- CS (Code Segment) je určen pro výpočet adresy instrukce (je vždy nastaven při spuštění našeho procesu)
- DS (Data Segment) slouží pro výpočet adresy dat
- SS (Stack Segment) se použije při přístupu k zásobníku
- ES (Extra Segment) je může obsahovat pomocný datový segment

- CF (CY; Carry Flag) = přenos z nejvyššího bitu (jak pro 16bitové operace, tak i pro 8bitové)
- PF (Parity Flag) = sudá parita výsledku dolní osmice bitů
- AF (AC, Auxiliary Carru flag) = příznak pro přenos přes hranici nejnižšího půlbajtu operandu (vždy z bitu 3 do 4). Význam v BCD aritmetice.
- ZF (Zero Flag) = nulový výsledek dokončené operace
- SF (Sign Flag) = kopie znaménkového bitu operace
- OF (Overflow Flag) = došlo k aritmetickému přetečení (význam pouze při práci se znaménkem)
- TF (Trap Flag) = uvádí procesor do krokovacího režimu, ve kterém je po provedení první instrukce generováno přerušení (INT 1). Příznak lze nastavit pouze přes zásobník instrukcí
IRET.
- IF (Interrupt Enable Flag) = nulový zabrání uplatnění vnějších maskovatelných přerušení (generovaných signálem
INTR).
- DF (Direction Flag) = řídí směr zpracování řetězcových operací. (Jestli od nejnižší k nejvyšší = inkrementace, nebo od nejvyšší k nejnižší = dekrementace)
- všechny přístupy přes registr
SS, SS:SP
- 8086 nemá žádný prostředek, který by hlídal maximální mez naplnění zásobníku.
- Vnější (gen. technickými prostředky)
- nemaskovatelná (signál NMI) (Zjištění chyby při čtení z paměti)
- maskovatelná (signál INTR)
- Vnitřní (gen. programově)
- instrukcí
INT n
- chybou při běhu programu
- Procesor nám nabízí různých 256 adres přerušení, aby když vznikne přerušení se mohlo přerušení hned obsloužit přeskočením na adresu pro daný kód přerušení.
- Pro každé přerušení máme 4 bajty (2 bajty offsetu, 2 bajty segmentů)
- Do těchto adres by neměl zasahovat nikdo jiný, než OS! (Na 8086 nešlo zabezpečit, kdokoliv mohl zapsat kamkoli)
- Akce když se uplatní přerušení:
- do zásobníků se uloží registr příznaků (
F)
- vynulují se
IF a TF
- do zásobníku se uloží registr
CS
- registr
CS se naplní 16bitovým obsahem adresy n × 4 + 2
- do zásobníku se uloží registr
IP
- registr
IP se naplní 16bitovým obsahem n × 4
- Návrat do přerušeného procesu - speciální instrukce
IRET (INTerrupt RETurn):
- ze zásobníku se obnoví registr
IP
- ze zásobníku se obnoví
CS
- ze zásobníku se obnoví příznakový registr (
F)
INT n | Význam |
| 0 | Celočíselné dělení nulou (Divide by Zero) |
| 1 | Krokovací režim (Single-step) |
| 2 | Nemaskovatelná přerušení (NMI) |
| 3 | Ladící bod (Breakpoint trap) |
| 4 | Přeplnění (Overflow Trap) |
INTO je-li nastaven příznak OF=1; zavolá se přerušení INT 4
- procesor přeruší po provedení každé instrukce
- Musíme mít jiný program, který umí ladit. Ladící systém si načte do paměti laděný program.
- Počáteční spuštění krokovacího režimu:
MOV AX, 0x0100 ;nastavení TF=1
PUSH AX
MOX AX, segmentová část adresy 1. instrukce
PUSH AX
MOV AX, 0 ;offsetová část adresy 1.instrukce
PUSH AX
IRET ;obnoví se TF=1
- Procesor je inicializován aktivní úrovní signálu RESET.
| Registr | Obsah |
| Příznakový registr | 0 (často bývá 2. bit 1, ale nemá význam) |
| IP | 0 |
| DS, ES, SS | 0 |
| CS | 0FFFFh |
- První instrukce, kterou bude procesor po inicializaci signálem RESET vypracovávat, je umístěn na adrese
0FFFF:0000h tj. 0FFFF0h (15 bajtů od konce).
(MOV nikdy nepovolí z paměti do paměti)
Operandy:
- Registr =
MOV AH,BL (Nesmím použít na dva registry různé velikosti.)
- Přímý operand =
MOV AH,50
- Přímá adresa =
PROM DB ?
MOV AH, [PROM]
MOV AH, PROM
MOV AH, DS:[101]
- Nepřímá adresa =
MOV AH, [BX] (SI, DI, SP, BP, BX)
- Bázovaná adresa=
MOV AH, [BP+PROM] (BP,BX)
- Indexovaná adresa=
MOV AH, [PROM+SI] (SI,DI)
MOV AH, PROM[SI]
- Báze + Index =
MOV AH, [BX][DI]
MOV AH, [BX+DI]
- Přímá + Báze + Index =
MOV AH, PROM[BX][DI]
MOV AH, [PROM+BX+DI]
MOV AH, [PROM+BX+DI+1]
Segment = přímá adresa + báze + index
- Instrukce MOV nemění příznaky!
- Nikdy nemohu z paměti přímo do paměti.
- Nelze
MOV CS,...! - musíme upravit i offset
- Po instrukci
MOV SS, ... je po dobu trvání následující instrukce (MOV SP,...) zakázáno přerušení
- Číslo z 8bitového registru rozšířit do 16bitového:
- Znaménkový bit objektu, který se má rozšířit, se zkopíruje do všech bitů objekt, o který se rozšiřuje.
ADD: nastavuje příznaky: O, S, Z, A, P, C
ADC - ADD WITH CARRY
- Instrukce ADC se používá na sčítání objektů, jejichž šířka je větší než běžně zpracovávaná šířka objektů.
SUB - SUBSTRACTION
SBB - SUBSTRACTION WITH BORROW
CMP - COMPARE; CMP Al, CL –> F:=AL-CL
INC - INCREMENT; nastavuje příznaky: O, S, Z, A, P
DEC - DECREMENT
NEG - dvojkový doplněk; nastavuje příznaky: O, S, Z, A, P, C
CBW - CONVERT BYTE TO WORD; nenastavuje příznaky; AX = AL se zachováním znaménka
CWD - CONVERT WORD TO DOUBLEWORD
- DX&AX:=AX
- DX - vyšší bity
- AX - nižší bity
IMUL - SIGNED MULTIPLICATION respektuje znaménka!
- nastavuje příznaky: O, C; S,Z,A,P jsou nedefinované
- pro 8bit:
IMUL BL AX:=AL*BL
- pro 16bit:
IMUL CX DX&AX:=AX*CX
MUL - UNSIGNED MULTIPLICATION neuvažuje znaménkový bit
IDIV - SIGNED DIVIDE
- příznaky jsou nedefinované
- pro 8 bit
IDIV BL
- AL:=AX/BL
- AH:=AX modulo BL
- Je-li podíl větší než maximální rozsah zobrazení –> INT 0
- Zbytek má stejné znaménko jako dělenec.
DIV - UNSIGNED DIVIDE - neznaménkové
AND - logický součin po bitech
- příznaky: O = 0, C = 0; nastavuje: S,Z,P; A je nedefinováno
OR - logický součet
XOR - nonekvivalence
XOR AL,7 AL:=AL⊕7
XOR AL,AL = vynulování registru AL
NOT - inverze bitů (jedničkový doplněk)
TEST - logical compare
- nastavuje příznaky: S,Z,P
- udělá
AND na dva operandy, výsledek nikam neuloží
- pouze podle výsledku nastaví příznaky
ROL - rotate left
ROL r/m8,CL - můžeme použít pouze CL, nebo immediate (max 5)
- může nastavit OF
ROR - rotate right
RCL rotate left through carry
- rotuje se přes carry flag
RCR rotate right through carry
SAL shift arithmetic left (SHL shift logical left)
SAR - shift arithmetic right
- nejvyšší bit se kopíruje znovu do nejvyššího
SHR - shift logical right
- do nejvyššího (uvolněného) bit se dává 0
JMP - jump, nepodmíněný skok
- přímý skok (cílová adresa je v instrukci)
- mění CS
- vzdálený skok (far jump)
- plní CS:IP
- nemění CS - IP := IP + vzdálenost
- vzdálenost ∈ <0; 65535> sčítá neznaménkově!! = blízký skok (near jump)
- v případě, že bychom skočili na adresu za segmentem, bude adresa od začátku segmentu
- vzdálenost ∈ <-128; +127> sčítá znaménkově!! = krátký skok (shot jump)
- nepřímý skok: v instrukci je odkaz na:
- Registr SI, DI, SP, BP nebo BX (obsahuje offset cílové adresy
- Paměť
JMP rel8 JMP SHORT navesti krátký skok
JMP rel16 JMP návěští blízský skok
JMP ptr16:16 JMP FAR_PTR návěští vzdálený skok
JMP r/m16 JMP [BX] nepřímý blízký skok
JMP m16:16 JMP [dvojslovo] nepřímý vzdálený skok
- Pouze krátké skoky: vzdálenost <-128,+127>
- Neuvádí se ,,short“
JE EQUAL ZF=1 roven
JZ ZERO ZF=1 nulový
JNE NOT EQUAL ZF=0 různý
JNZ NOT ZERO ZF=0 nenulový
JP PARITY PF=1 sudá parita
JPE PARITY EVEN PF=1 sudá parita
JNP NOT PARITY PF=0 lichá parita
JPO PARITY ODD PF=0 lichá parita
JS SIGNUM SF=1 záporný
JNS NOT SIGNUM SF=0 kladný nebo nenulový
JC CARRY CF=1 nastal přenos
JNC NOT CARRY CF=0 nenastal přenos
JO OVERFLOW OF=1 nastalo přeteční
JNO NOT OVERFLOW OF=0 nenastalo přeteční
...
ABOVE/BELOW - pro neznaménková
GREATER/LESS - pro znaménková
PUSH Uložení 16bitového objektu do zásobníku
- SP:=SP-2
- [SS:SP] := operand_16bitový
POP Výběr 16bitového objekty ze zásobníku:
- operand_16bitový := [SS:SP]
- SP:=SP+2
CALL
PUSH CS - pouze ,,FAR“ varianta
PUSH IP+délka_instrukce
- (CS):IP := operand
RET - Return
RET POP IP blízký návrat
RETF POP IP vzdálený návrat
POP CS vzdálený návrat
RET imm16 POP IP
SP:=SP+imm16
RETF imm16 POP IP
POP CS
SP:=SP+imm16
PUSHF push flag registr
POPF pop flag registr
INT Interrupt
PUSHF
- IF:=0, TF:=0
PUSH CS
- CS:=[imm8x4 + 2]
PUSH IP + délka instrukce (obsah zásobníku ukazuje za ,,INT imm8“)
- IP:=[imm8x4]
INT 3
INTO Interrupt if oveflow
IRET interrupt return
POP IP
POP CS
POPF
LOOP - unconditional loop
- nemění příznaky
- registr CX … čítač průchodů
MOV CX, pocet_pruchodu
OPAKUJ:
...
LOOP OPAKUJ ; DEC CX
; pokud CX != 0 SHORT skok na OPAKUJ
- Na adresovou sběrnici ,,číslo“ v/v zařízení == V/V brána == port v intervalu 0 - 65535
- Na datovou sběrnici data
- V/V brány jsou 8bitové - lze pracovat i s dvojicí bran na po sobě jdoucích adresách
IN Input from port
- Přenos bajtu nebo slova ze V/V brány do registru AL nebo AX
OUT Output to port
- Přenos bajtu nebo slova z registru AL nebo AX do V/V brány
XCHG cílový, zdrojový … zamění obsahy
- …
- Instrukce
NOP
NOP No operation = operační kód 90h; jednobajtová; ekv. XCHG AX, AX
- Využití např. pro optimalizace umístění začátku těl cyklů
HLT HALT - zastavení procesoru
ESC - Vzorek uvádějící instrukce 8087
WAIT - Čekání na dokončení akce 8087
LOCK - Instrukční prefix ,,zamykající“ sběrnici po dobu trvání instrukce
…
- 16 bitový procesor
- od 1982, cca do 1990
- frekvence 6 - 16 MHz
- nové počítače PC AT
- 24bitová adresová sběrnice, tj. 16MB RAM
- (Procesor 80186 se v pc moc neuplatnil)

- Kompatibilní s procesorem 8086.
- Je nastaven po inicializaci procesoru.
- Rozdíl oproti 8086 - adresová aritmetika - není přetečení
- Zapíná se programově z reálného režimu.
- Adresuje 16 MB reálné paměti a 1 GB virtuální paměti.
- Poskytuje prostředky 4 úrovňové ochrany.
- Nelze se vrátit z chráněného režimu zpět do reálného. (Používal se RESET procesoru pomocí V/V instrukcí)
- Stejný jako v 8086
- v chráněném režimu rozšířen o
NT a IOPL
NT Nested Task
IOPL I/O Privilege Level
- Určuje úroveň oprávnění, při kterém může proces ještě provádět V/V instrukce.
- Vyšší hodnota představuje nižší úroveň oprávnění.

- slouží k zapínání chráněného režimu
- 16bitový registr
PE Protected Mode Enable
MP Monitor Processor Extension
- indikuje přítomnost koprocesoru
EM Emulate Processor Extension
- zapíná emulaci koprocesoru tehdy, není-li koprocesor instalován (Je-li
EM=1, způsobí instrukce koprocesoru přerušení INT 7).
TS Task Switch
- se nastavuje vždy přepnutím procesoru. Je používán koprocesorem zjištění, že v procesoru se vyměnil zadavatel úkolu.
- Proces = dynamická veličina, zkopírovaný program v paměti
- Segment (oproti v 8086 snaha segmenty rozdělovat)
- Ochrana instrukcí před přepsáním.
- Více uživatelů chce spustit stejný program = každý uživatel má různý datový segment, ale stejný jeden instrukční segment.
- Báze segmentu (adresa začátku segmentu)
- Limit segmentu (délka segmentu ve slabikách - 1)
- Přístupovými právy a typem segmentu.
- Globální adresový prostor - Pouze jeden; pokryta celá paměť; může používat OS
- Lokální adresový prostor - Je jich více; každý proces má vlastní lokální adresový prostor
- Virtuální adresa (selektor:offset) - zpracovávají se jinak než v 8086; selektor ukazuje do tabulky

- Selektor obsahuje 13 bitů (8 192 kombinací) indexu do tabulky popisovačů segmentů lokálního nebo globálního adresového prostoru a další 3 informační bity.
TI Table Indicator
- vybírá jestli ukazuji do globálního adresovacího prostoru (
TI=0) nebo lokálního (TI=1)

- Transformace virtuální adresy na reálnou pomocí tabulek popisovačů segmentů v procesoru 80286
- Virtuální adresový prostor 1GB: 14b. Selektor + 16b. Offset
Typ popisovaného segmentu je definován obsahem slabiky přístupová práva. Podle typu segmentu rozlišujeme v 80286 tyto 4 základní třídy popisovačů:
- popisovač segmenty obsahujícího data (datový segment),
- popisovač segmentu obsahujícího instrukce (instrukční segment),
- popisovač segmentu obsahujícího informace pro systém (systémový segment),
- popisovač brány. (Virtuální)
bit 4 = 1 a bit 3 = 0 určuje, že jde o datový segment
P Segment Present
- je nastaven na jedničku tehdy, je-li obsah segmentu uložen v reálné paměti. Není-li, je nulový (A při použití se generuje INT)
DPL Descriptor Privilege Level
W Writable
- je nastaven na 1, pokud je povoleno čtení i zápis do segmentu. Zásobník musí mít vždy W=1.
A Accessed
- nastavuje procesor na jedničku při každém přístupu k této položce v tabulce popisovačů segmentů .
ED Expansion Direction
- indikuje, kterým směrem se bude obsah segmentu rozšiřovat. Datové segmenty mohou obsahovat klasická data
ED=0 nebo zásobníky ED=1.

bit 4 = 1 a bit 3 = 1 určuje, že jde o instrukční segment
DPL úroveň oprávnění instrukcí procesu
R Readable
- nulový zakazuje čtení obsahu segmentu. (Můžu jen spouštět)
C Conforming
- nulový sděluje, že podprogramy volané v tomto segmentu budou mít nastavenou úroveň oprávnění odpovídající úrovni segmentu, v nemže se nacházejí. Je-li C=1, bude volanému podprogramu v tomto segmentu přidělena úroveň oprávnění segmentu z něhož je volán. (Zvýšení oprávnění.)
Smí být umístěn pouze v GDT.
bit 4,3 a 2 = 0 určuje, že jde o systémový segment
- Typ (nejnižší 2 bity)
- označuje segment stavu procesu (TSS - Task State Segment) pro právě neaktivní proces.
- označuje segment stavu procesu pro právě aktivní proces.
- označuje segment stavu procesu pro právě aktivní proces.
- kromě viditelného selektoru, jsou v registrech načteny i přístupová práva, báze segmentu a limit segmentu

Plnění:
GDTR: LGDT operand obsahující bázi (24b) a limit (16b)
LDTR: LLDT selektor (16b) (nesmí se použít v reálném režimu)
- jádro OS si vytvoří datový segment, pro nikoho jiný nedostupný
- do tohoto nahraje instrukce jako data, po té přes datový segment “přeplácne” instrukční segment a tento pak dá LDT
- 0 až 3 (nejvyšší až nejnižší
- jádro operačního systému (řízení procesoru, V/V operací)
- služby poskytované OS (plánování procesů, organizace V/V, přidělování prostředků0
- systémové programy a podprogramy z knihoven (systém obsluhy souborů, správa knihoven)
- uživatelské aplikace
DPL
CPL Current Privilege Level
- dva nejnižší bity selektoru CS
- momentální oprávnění procesu
RPL Requested Privelege Level
- bity 0 a 1 selektory segmentového registru
- nastavuje se
EPL
- vyhodnotí se pomocí
RPL a DPL
- Zamezení přeskočit kontroly volání více privilegovaných funkcí např OS
- Označuje vstupní body
- Každá úroveň oprávnění má vlastní zásobník
- brána překopíruje počet parametrů ze zásobníku vyšší úrovně do nového zásobníku
LGDT
LIDT naplnění datiblu pro přerušení
LLDT
LTR plnění tabulky při přerušení
LMSW plnění registru MSW
CLTS nulování TS bitu v MSW
HLT
POPF a IRET smí měnit zásobník pouze pro CPL = 0

- registr TR ukazuje na aktivní proces TSS
- Interrupt Descriptor Table (IDT) obsahuje až 256 popisovačl rutin obsluhujících přerušení.
- IDTR obsahuje adresu IDT (like GDTR)
- Popisovače v IDT pouze tyto tři:
- brána zpřístupňující TSS,
- brána pro maskující přerušení (Interrupt Gate)
- brána pro nemaskující přerušení (Trap Gate)
- Do zásobníku navíc může být uloženo chybové slovo.
- Fault do zásobníku uloží CS:IP ukazující na instrukci, která způsobila přerušení.
- Trap do zásobníku uloží CS:IP ukazující za instrukci (na následující instrukci), která přerušení způsobila.
- Abort v procesu nelze pokračovat a musí být násilně ukončen.
- do paměti zavést programy a odpovídající tabulky popisovačů,
- nastavit GDTR a IDTR,
- zapnout chráněný režim nastavením bitu PE:=1 registru MSW,
- provést blízký skok JMP proto, aby se zrušil obsah interních front procesoru, ve kterých jsou uloženy předvybrané instrukce (výběr instrukcí totiž závisí na zvoleném režimu procesoru),
- vytvořit TSS inicializačního procesu a nastavit obsah TR,
- naplnit LDTR,
- inicializovat ukazatel vrcholu zásobníku SS:SP,
- všechny segmenty v paměti označit P:=0,
- nastavit příznakový registr F a registr stavu procesoru MSW,
- inicializovat externí zařízení,
- zabezpečit obsluhu všech možných přerušení,
- povolit přerušení (IF:=1),
- zahájit provádění prvního programu
- 32bitový procesor
- u vyšších frekvencí se začali poprvé používat chladiče
- od 1986 do 1994
- alternativní název i386DX
- varianta pro 16bitové prostředí: 386SX
- matematický koprocesor zvlášť i387 (velmi drahý)
- 32bitová datová sběrnice
- 32bitová adresovatelná sběrnice, tj. max. 4GB RAM
- 32bitové začínají s
E, např. EAX, EBX
- VM (Virtual 8086 Mode) - zapíná režim virtuální 8086 pro proces, jemuž obsah příznakového registru náleží. Příznak VM smí programátor nastavovat pouze v chráněném režimu, a to instrukcí IRET, a to jenom na úrovni oprávnění 0. Příznak je také modifikován mechanismem přepnutí procesu.
- Program MONITOR, kontroluje daný segment v VM. V případě použití privilegovaných instrukcí, musí MONITOR filtrovat akce a zpracovat je vhodným způsobem.
- RF (Resume Flag) - maskuje opakování ladícího přerušení
- Registry pro uložení selektoru datových segmentů: DS, ES, FS a GS.
- Velikost viditelných částí registrů se nezměnila (selektor je stále 16-bitový), ale zvětšila se neviditelná část tak, že báze segmentu je 32bitová.
- logická adresa - dříve virtuální, je převedena na lineární
- lineární adresa -
- fyzická adresa - je transformováná činností stránkovací jednotky z lineární. V případě, že není stránkování je totožná s lineární

- PE - nejnižší bit; zapíná chráněný režim
- ET - Extension Type - sděluje typ koprocesoru (80237=0, 80387=1)
- PG - Paging - zapíná stránkování
- Rozšířená podpora ladění:
- Ladící registry: DR0, DR1, DR2, DR3, DR6 a DR7
- Testovací registry: TR6 a TR7 (
- 8 bajtů, obsahující bázi segmentu(32 bitů), limit segmentu (20bitů), přístupová práva
- G Granularita
= 0 - jednotka limitu je 1 B (max. 1 MB)
= 1 - jednotka limitu je 4 KB (ma. 4 GB)
- AVL (Available for Programmer Use)
- s závisí na typu popisovače
- s = B (Big)
= 0 - segment podle pravidel 80286 (max. 64KB), implicitní velikost položky ukládané do zásobníku je 16bitů
= 1 - segment podle pravidel 80386 (max. 4GB), zásobník lze plnit od adresy FFFFFFFFh, implicitní velikost položky ukládané do zásobníku je 32 bitů
- s = D (default)
= 0 - implicitní velikost adres a operandů je 16 bitů
= 1 - implicitní velikost adres a operandů je 32 bitů
Explicitní určení velikosti zajišťují prefixy:
66h mění implicitní velikost operandu a
67h mění implicitní velikost adresy
- bit s není použit
- v 80386 se v přístupových právem rozšířil počet typů na 16 kombinací
- 0..7 označení stejná jako pro 80286
- 8..F vlastnosti podobné jako u 0..7, ale pro 80386
- umožňuje použít více operační paměti než reálně máme
- od 80386 prvně přístupné stránkování
- logická adresa
- používá programátor
selektor 16:offset 32
- lineární adresa
- vznikne procesem stránkování
- fyzická adresa
- je-li zapnuté stránkování, vzniká z lineární adresy
- není-li, pak vzniká z logické adresy
- vystupuje ven
- Rámec a stránka kapacity 4KB

- P Present - Je-li P=0, není obsah stránky ve fyzické paměti. Zpřístupnění takové stránky zalová
INT 14 a v CR2 je adresa stránky
- D Dirty - obsah rámce byl změněn. Stránka je potřeba uložit na disk.
- A Accessed - nastavuje procesor při každém použití tohoto specifikátoru. Použití při výběru rámce, který z paměti odstraníme.
- U User Accesible
- W Writeable
- 4 cestná asociativní paměť (tabulka klíčů + data)
- asociativní paměť má 8 položek (řádků)
- dolní 3 bity lineární adresy (12-14) určuje řádek tabulky
- 4. bit v cestě daného řádku, určuje, jestli je daná cesta volná k použití
- každý proces má jednu stránkový adresář a stránkovou tabulku (max 1 stránkový adresář + 1024 stránkových tabulek
- Vyprázdnění TLB je nastavení V:=0 do všech položek.
- Automaticky vždy při naplnění CR2.
- Pro kontrolování V/V instrukcí pouze tehdy, je-li CPL>IOPL.
- Je-li bit mapy =0 - V/V operace se povolí
- je-li bit mapy =1 - generuje se INT 13
- Pracuje-li V/V instrukce se slovem nebo dvojslovem - testují se všechny odpovídající bity.
- uložena ve stejném segmentu jako je TSS; systém smí nad strukturou TSS uložit vlastní data
- offset této mapy uložen na konci TSS struktury
- Za konec mapy se doporučuje vyplnil samými 1 (aby se případně generovalo INT 13)

INT 1 - ladění
INT 14 - Výpadek stránky (Page Fault)
- nemáme oprávnění na přístup