Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
01.05.2014
Размер:
44.55 Кб
Скачать

INVD - Ђ­­г«Ёа®ў ­ЁҐ ЄҐи 

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|0F 08 INVD 4 Ђ­­г«Ёа®ў ­ЁҐ ўбҐЈ® ЄҐи  |
-----------------------------------------------------------------

ђ Ў®в  Є®¬ ­¤л
--------------

ЋзЁбвЄ  ў­гв७­ҐЈ® ЄҐи 
‘ЁЈ­ « ў­Ґи­Ґ¬г ЄҐиг ­  ®зЁбвЄг

ЋЇЁб ­ЁҐ
--------

Џа®Ёб室Ёв ®зЁбвЄ  ў­гв७­ҐЈ® ЄҐи , Ё ўл¤ Ґвбп бЇҐжЁ «м­л© жЁЄ«
иЁ­л, гЄ §лў ойЁ© ­  ­Ґ®Ўе®¤Ё¬®бвм ®зЁбвЄЁ ў­Ґи­Ёе ЄҐиҐ©.
„ ­­лҐ, ­ е®¤пйЁҐбп ў® ў­Ґи­Ёе ЄҐи е б ®Ўа в­®© § ЇЁбмо,
вҐаповбп.

€§¬Ґ­пҐ¬лҐ д« ЈЁ
----------------

Ћвбгвбвўгов

€бЄ«о祭Ёп § йЁйҐ­­®Ј® ०Ё¬ 
----------------------------------

Ћвбгвбвўгов

€бЄ«о祭Ёп ०Ё¬  ॠ«м­ле  ¤аҐб®ў
---------------------------------------

Ћвбгвбвўгов

€бЄ«о祭Ёп ўЁавг «м­®Ј® ०Ё¬  8086
----------------------------------------

Ћвбгвбвўгов

ЏаЁ¬Ґз ­Ёп
----------

„ ­­ п Є®¬ ­¤  § ўЁбЁ¬  ®в ॠ«Ё§ жЁЁ: а §­лҐ Їа®жҐбб®ал Intel
¬®Јгв ॠ«Ё§®ўлў вм ҐҐ дг­ЄжЁЁ Ї®-а §­®¬г.

ЋвўҐвб⢥­­®бвм §  ॠЄжЁо ­  бЁЈ­ « ®зЁбвЄЁ ў­Ґи­ҐЈ® ЄҐи  «Ґ¦Ёв
­   ЇЇ а в­®¬ ®ЎҐбЇҐзҐ­ЁЁ.

„ ­­ п Є®¬ ­¤  Їа®жҐбб®а ¬Ё 386 ­Ґ Ї®¤¤Ґа¦Ёў Ґвбп.
€бЇ®«м§®ў ­ЁҐ Є®¬ ­¤л, б®ў¬ҐбвЁ¬®© б Їа®жҐбб®а ¬Ё 386 б¬. ў
а §¤Ґ«Ґ 3.11. ЋЎа в­ п § ЇЁбм "Јап§­ле" ¤ ­­ле Ё§ ЄҐи  ў
®ЇҐа вЁў­го Ї ¬пвм а бб¬ ваЁў Ґвбп ў ®ЇЁб ­ЁЁ Є®¬ ­¤л WBINVD.

‡ ЇаҐйҐ­ЁҐ ЄҐиЁа®ў ­Ёп а бб¬ ваЁў Ґвбп ў а §¤Ґ«Ґ 12.2.

-----------------------------------------------------------------


INVLPG - Ђ­­г«Ёа®ў ­ЁҐ н«Ґ¬Ґ­в  TLB

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|0F 01/7 INVLPG 12 ў б«гз Ґ Ђ­­г«Ёа®ў ­ЁҐ н«Ґ¬Ґ­в  TLB |
| б®ўЇ ¤Ґ­Ёп |
-----------------------------------------------------------------

ђ Ў®в  Є®¬ ­¤л
--------------

Ђ­­г«Ёа®ў ­ЁҐ н«Ґ¬Ґ­в  TLB

ЋЇЁб ­ЁҐ
--------

Љ®¬ ­¤  INVLPG ЁбЇ®«м§гҐвбп ¤«п  ­­г«Ёа®ў ­Ёп ®¤­®Ј® н«Ґ¬Ґ­в  ў
TLB, Є®в®ал© ЇаҐ¤бв ў«пҐв б®Ў®© ЄҐи, ЁбЇ®«м§гҐ¬л© ¤«п еа ­Ґ­Ёп
н«Ґ¬Ґ­в®ў бва ­Ёз­ле в Ў«Ёж. …б«Ё TLB ᮤҐа¦Ёв ¤®бв®ўҐа­л©
н«Ґ¬Ґ­в, ®в®Ўа ¦ ойЁ©  ¤аҐб ®ЇҐа ­¤  Ї ¬пвЁ, в® нв®в н«Ґ¬Ґ­в
Ўг¤Ґв Ї®¬ҐзҐ­ Є Є ­Ґ¤®бв®ўҐа­л©.


€§¬Ґ­пҐ¬лҐ д« ЈЁ
----------------

Ћвбгвбвўгов

€бЄ«о祭Ёп § йЁйҐ­­®Ј® ०Ё¬ 
----------------------------------

ЏаЁ ЁбЇ®«м§®ў ­ЁЁ Є®¬ ­¤л б ®ЇҐа ­¤®¬-ॣЁбва®ў ЈҐ­ҐаЁагҐвбп
ЁбЄ«о祭ЁҐ ­ҐўҐа­®Ј® Є®¤  ®ЇҐа жЁЁ.

€бЄ«о祭Ёп ०Ё¬  ॠ«м­ле  ¤аҐб®ў
---------------------------------------

Ћвбгвбвўгов

€бЄ«о祭Ёп ўЁавг «м­®Ј® ०Ё¬  8086
----------------------------------------

ЏаЁ ЁбЇ®«м§®ў ­ЁЁ Є®¬ ­¤л б ®ЇҐа ­¤®¬-ॣЁбва®ў ЈҐ­ҐаЁагҐвбп
ЁбЄ«о祭ЁҐ ­ҐўҐа­®Ј® Є®¤  ®ЇҐа жЁЁ.

ЏаЁ¬Ґз ­Ёп
----------

„ ­­ п Є®¬ ­¤  § ўЁбЁ¬  ®в ॠ«Ё§ жЁЁ: а §­лҐ Їа®жҐбб®ал Intel
¬®Јгв ॠ«Ё§®ўлў вм ҐҐ дг­ЄжЁЁ Ї®-а §­®¬г.

„ ­­ п Є®¬ ­¤  Їа®жҐбб®а ¬Ё 386 ­Ґ Ї®¤¤Ґа¦Ёў Ґвбп. €бЇ®«м§®ў ­ЁҐ
Є®¬ ­¤л, б®ў¬ҐбвЁ¬®© б Їа®жҐбб®а ¬Ё 386 б¬. ў а §¤Ґ«Ґ 3.11

‡ ЇаҐйҐ­ЁҐ ЄҐиЁа®ў ­Ёп а бб¬ ваЁў Ґвбп ў а §¤Ґ«Ґ 12.2.

-----------------------------------------------------------------

IRET/IRETD - ‚®§ўа в Ё§ ЇаҐалў ­Ёп

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|CF IRET 15 ‚®§ўа в Ё§ ЇаҐалў ­Ёп |
| (¤ «м­Ё© ў®§ўа в Ё Ё§ў«ҐзҐ­ЁҐ |
| Ё§ б⥪  д« Ј®ў) |
|CF IRET 36 ‚®§ўа в Ё§ ЇаҐалў ­Ёп |
| Є ¬Ґ­м襬г га®ў­о |
| ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ |
|CF IRET TS+32 ‚®§ўа в Ё§ ЇаҐалў ­Ёп, |
| ¤агЈ п § ¤ з  (NT = 1) |
|CF IRETD 15 ‚®§ўа в Ё§ ЇаҐалў ­Ёп |
| (¤ «м­Ё© ў®§ўа в Ё Ё§ў«ҐзҐ­ЁҐ |
| Ё§ б⥪  д« Ј®ў) |
|CF IRETD 36 ‚®§ўа в Ё§ ЇаҐалў ­Ёп |
| Є ¬Ґ­м襬г га®ў­о |
| ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ |
|CF IRETD 15 ‚®§ўа в Ё§ ЇаҐалў ­Ёп, |
| Є ०Ё¬г V86 |
|CF IRET TS+32 ‚®§ўа в Ё§ ЇаҐалў ­Ёп, |
| ¤агЈ п § ¤ з  (NT = 1) |
-----------------------------------------------------------------

ЏаЁ¬Ґз ­ЁҐ: ЇаЁЎ«Ё¦Ґ­­лҐ §­ зҐ­Ёп ts § ¤ овбп б«Ґ¤го饩
в Ў«ЁжҐ©:

-----------------------------------------------------------------
| Ќ®ў п § ¤ з 
‘в а п § ¤ з  |-------------------------------------------
| Є TSS i486 | Є TSS 80286 | Є TSS VM
-----------------------------------------------------------------
VM/i486/TSS 80286 | 199 | 180 | 177
-----------------------------------------------------------------

ђ Ў®в  Є®¬ ­¤л
--------------


IF PE = 0
THEN (* ђҐ¦Ё¬ ॠ«м­ле  ¤аҐб®ў *)
IF operandSize = 32 (* Љ®¬ ­¤  = IRETD *)
THEN EIP <- Pop();
ELSE (* Љ®¬ ­¤  = IRET *)
IP <- Pop();
FI;
CS <- Pop();
IF OperandSize = 32 (* Љ®¬ ­¤  = IRETD *)
THEN EFLAGS <- Pop();
ELSE (* Љ®¬ ­¤  = IRET *)
FLAGS <- Pop();
FI;
ELSE (* ‡ йЁйҐ­­л© ०Ё¬ *)
IF VM = 1
THEN #GP(0);
ELSE
IF NT = 1
THEN GOTO ‚Ћ‡‚ђЂ’-‡Ђ„Ђ—€;
ELSE
IF VM = 1 ў ®Ўа §Ґ д« Ј®ў, ­ е®¤п饬бп ў б⥪Ґ
THEN GOTO ‚Ћ‡‚ђЂ’-‘’…ЉЂ-Љ-V86;
ELSE GOTO ‚Ћ‡‚ђЂ’-‘’…ЉЂ;
FI;
FI;
FI;
FI; ‚Ћ‡‚ђЂ’-‘’…ЉЂ-Љ-V86: (* ЏаҐаў ­­ п Їа®жҐ¤га  ў ०Ё¬Ґ V86 *)
IF ўҐае­ЁҐ 36 Ў ©в®ў б⥪  ­Ґ ў ЇаҐ¤Ґ« е Ја ­Ёж
THEN #SS(0);
FI;
IF гЄ § вҐ«м Є®¬ ­¤ ­Ґ ў Ја ­Ёж е Є®¤®ў®Ј® ᥣ¬Ґ­в  THEN #GP(0);
FI;

EFLAGS <- SS:[ESP + 8]; (* “бв ­ ў«Ёў Ґв VM ЇаҐаў ­­®©
Ї®¤Їа®Ја ¬¬л *)
EIP <- Pop();
CS <- Pop(); (* CS ўҐ¤Ґв ᥡп, Є Є ў 8086, в.Є. VM = 1 *)
Џ®вҐап <- Pop(); (* Ё§ў«ҐзҐ­ЁҐ Ё§ б⥪  б Ї®вҐаҐ© 㦥
бзЁв ­­®Ј® EFLAGS *)
‚६ESP <- Pop();
‚६SS <- Pop();
ES <- Pop(); (* €§ў«ҐЄ овбп Ё§ б⥪  2 б«®ў ; бв а襥 б«®ў®
®вЎа блў Ґвбп *)
DS <- Pop(); (* €§ў«ҐЄ овбп Ё§ б⥪  2 б«®ў ; бв а襥 б«®ў®
®вЎа блў Ґвбп *)
FS <- Pop(); (* €§ў«ҐЄ овбп Ё§ б⥪  2 б«®ў ; бв а襥 б«®ў®
®вЎа блў Ґвбп *)
GS <- Pop(); (* €§ў«ҐЄ овбп Ё§ б⥪  2 б«®ў ; бв а襥 б«®ў®
®вЎа блў Ґвбп *)
SS:ESP <- ‚६SS:‚६ESP;

(* ‚®§®Ў­®ў«Ґ­ЁҐ ўлЇ®«­Ґ­Ёп ў ўЁавг «м­®¬ ०Ё¬Ґ 8086 *)

‚Ћ‡‚ђЂ’-‡Ђ„Ђ—€:
ђ бᬮваЁ¬ ᥫҐЄв®а ®Ўа в­®© Є®¬Ї®­®ўЄЁ § ¤ з ў TSS,  ¤аҐб㥬®¬
ॣЁбв஬ ⥪г饩 § ¤ зЁ;
‚ ЎЁвҐ ‹®Є «м­л©/ѓ«®Ў «м­л© ¤®«¦­® Ўлвм § ¤ ­® §­ зҐ­ЁҐ
ѓ«®Ў «м­л©, Ё­ зҐ #TS(ᥫҐЄв®а ­®ў®Ј® TSS);
€­¤ҐЄб ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е GDT, Ё­ зҐ #TS(ᥫҐЄв®а ­®ў®Ј®
TSS);
Ѓ ©в AR ¤®«¦Ґ­ § ¤ ў вм TSS, Ё­ зҐ #TS(ᥫҐЄв®а ­®ў®Ј® TSS);
TSS ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм, Ё­ зҐ #NP(ᥫҐЄв®а ­®ў®Ј® TSS);
Џ…ђ…Љ‹ћ—…Ќ€…-‡Ђ„Ђ— ЎҐ§ ў«®¦Ґ­­®бвЁ ў TSS, § ¤ ­­л© ᥫҐЄв®а®¬
®Ўа в­®© Є®¬Ї®­®ўЄЁ § ¤ з;
ЋЎ®§­ зҐ­ЁҐ ЇаҐаў ­­®© § ¤ зЁ Є Є NOT BUSY (­Ґ § ­пв®);
“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёж Є®¤®ў®Ј® ᥣ¬Ґ­в ,
ELSE #GP(0);

‚Ћ‡‚ђЂ’-‘’…ЉЂ:
IF OperandSize = 32
THEN ’аҐвмҐ б«®ў® ў б⥪Ґ ¤®«¦­® Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёж б⥪ ,
Ё­ зҐ #SS(0);
ELSE ‚в®а®Ґ б«®ў® ў б⥪Ґ ¤®«¦­® Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёж б⥪ ,
Ё­ зҐ #SS(0);
FI;
RPL ᥫҐЄв®а  CS ў®§ўа в  ¤®«¦Ґ­ Ўлвм >= CPL, Ё­ зҐ
#GP(ᥫҐЄв®а ў®§ўа в );
IF RPL ᥫҐЄв®а  ў®§ўа в  = CPL
THEN GOTO ‚Ћ‡‚ђЂ’-ЌЂ-’Ћ’-†…-“ђЋ‚…Ќњ;
ELSE GOTO ‚Ћ‡‚ђЂ’-ЌЂ-‚Ќ…Ќ€‰-“ђЋ‚…Ќњ;
FI;

‚Ћ‡‚ђЂ’-ЌЂ-’Ћ’-†…-“ђЋ‚…Ќњ:
IF OperandSize = 32
THEN
‚Ґае­ЁҐ 12 Ў ©в®ў ў б⥪Ґ ¤®«¦­л Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёж,
Ё­ зҐ #SS(0);
‘Ґ«ҐЄв®а CS ў®§ўа в  (ў eSP+4) ¤®«¦Ґ­ Ўлвм ­Ґ-Їгбвл¬, Ё­ зҐ #
#GP(0);
ELSE
‚Ґае­ЁҐ 6 Ў ©в®ў ў б⥪Ґ ¤®«¦­л Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёж,
Ё­ зҐ #SS(0);
‘Ґ«ҐЄв®а CS ў®§ўа в  (ў eSP+2) ¤®«¦Ґ­ Ўлвм ­Ґ-Їгбвл¬, Ё­ зҐ #
#GP(0);
FI;
€­¤ҐЄб ᥫҐЄв®а  ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е ҐЈ® в Ў«Ёжл ¤ҐбЄаЁЇв®а®ў,
Ё­ зҐ #GP(ᥫҐЄв®а ў®§ўа в );
Ѓ ©в AR ¤®«¦Ґ­ § ¤ ў вм Є®¤®ўл© ᥣ¬Ґ­в, Ё­ зҐ #GP(ᥫҐЄв®а
ў®§ўа в );
IF ­Ґ-Є®­д®а¬­л©
THEN DPL Є®¤®ў®Ј® ᥣ¬Ґ­в  ¤®«¦Ґ­ Ўлвм = CPL;
ELSE #GP(ᥫҐЄв®а ў®§ўа в );
FI;
IF Є®­д®а¬­л©
THEN DPL Є®¤®ў®Ј® ᥣ¬Ґ­в  ¤®«¦Ґ­ Ўлвм <= CPL, Ё­ зҐ
#GP(ᥫҐЄв®а ў®§ўа в );
“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёж Є®¤®ў®Ј® ᥣ¬Ґ­в ,
Ё­ зҐ #GP(0);
FI;
IF OperandSize = 32
THEN
‡ Јаг§Є  CS:IP Ё§ б⥪ ;
‡ Јаг§Є  ॣЁбва  CS ¤ҐбЄаЁЇв®а®¬ ­®ў®Ј® Є®¤®ў®Ј® ᥣ¬Ґ­в ;
‡ Јаг§Є  EFLAGS ваҐвмЁ¬ ¤ў®©­л¬ б«®ў®¬ Ё§ б⥪ ;
€­ЄаҐ¬Ґ­в eSP ­  12;
ELSE
‡ Јаг§Є  ॣЁбва  CS ¤ҐбЄаЁЇв®а®¬ ­®ў®Ј® Є®¤®ў®Ј® ᥣ¬Ґ­в ;
‡ Јаг§Є  EFLAGS ваҐвмЁ¬ б«®ў®¬ Ё§ б⥪ ;
€­ЄаҐ¬Ґ­в eSP ­  6;
FI;

‚Ћ‡‚ђЂ’-ЌЂ-‚Ќ…Ќ€‰-“ђЋ‚…Ќњ:
IF OperandSize = 32
THEN ‚Ґае­ЁҐ 20 Ў ©в®ў ў б⥪Ґ ¤®«¦­л Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёж,
Ё­ зҐ #SS(0);
ELSE ‚Ґае­ЁҐ 10 Ў ©в®ў ў б⥪Ґ ¤®«¦­л Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёж,
Ё­ зҐ #SS(0);
FI;
ђ бᬮваЁ¬ ᥫҐЄв®а CS ў®§ўа в  Ё бўп§ ­­л© б ­Ё¬ ¤ҐбЄаЁЇв®а:
‘Ґ«ҐЄв®а ¤®«¦Ґ­ Ўлвм ­Ґ-Їгбвл¬, Ё­ зҐ #GP(0);
€­¤ҐЄб ᥫҐЄв®а  ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е ҐЈ® в Ў«Ёжл ¤ҐбЄаЁЇв®а®ў,
ELSE #GP(ᥫҐЄв®а ў®§ўа в );
Ѓ ©в AR ¤®«¦Ґ­ § ¤ ў вм Є®¤®ўл© ᥣ¬Ґ­в, Ё­ зҐ #GP(ᥫҐЄв®а
ў®§ўа в );
IF ­Ґ-Є®­д®а¬­л©
THEN DPL Є®¤®ў®Ј® ᥣ¬Ґ­в  ¤®«¦Ґ­ Ўлвм = RPL ᥫҐЄв®а  CS;
ELSE #GP(ᥫҐЄв®а ў®§ўа в );
FI;
IF Є®­д®а¬­л©
THEN DPL Є®¤®ў®Ј® ᥣ¬Ґ­в  ¤®«¦Ґ­ Ўлвм > CPL,
ELSE #GP(ᥫҐЄв®а ў®§ўа в );
FI;
‘ҐЈ¬Ґ­в ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм, Ё­ зҐ #NP(ᥫҐЄв®а ў®§ўа в );

ђ бᬮваЁ¬ ᥫҐЄв®а SS ў®§ўа в  Ё бўп§ ­­л© б ­Ё¬ ¤ҐбЄаЁЇв®а:
‘Ґ«ҐЄв®а ¤®«¦Ґ­ Ўлвм ­Ґ-Їгбвл¬, Ё­ зҐ #GP(0);
€­¤ҐЄб ᥫҐЄв®а  ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е ҐЈ® в Ў«Ёжл ¤ҐбЄаЁЇв®а®ў,
ELSE #GP(ᥫҐЄв®а SS);
RPL ᥫҐЄв®а  ¤®«¦Ґ­ Ўлвм а ўҐ­ RPL ᥫҐЄв®а  CS ў®§ўа в 
ELSE #GP(ᥫҐЄв®а SS);
Ѓ ©в AR ¤®«¦Ґ­ § ¤ ў вм ᥣ¬Ґ­в ¤ ­­ле, ¤®бвгЇ­л© ¤«п § ЇЁбЁ,
Ё­ зҐ #GP(ᥫҐЄв®а SS);
DPL ᥣ¬Ґ­в  б⥪  ¤®«¦Ґ­ Ўлвм = RPL ᥫҐЄв®а  CS ў®§ўа в ;
ELSE #GP(ᥫҐЄв®а SS);
SS ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм, Ё­ зҐ #NP(ᥫҐЄв®а SS);

“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёж Є®¤®ў®Ј® ᥣ¬Ґ­в ,
Ё­ зҐ #GP(0);
IF OperandSize = 32
THEN
‡ Јаг§Є  CS:EIP Ё§ б⥪ ;
‡ Јаг§Є  EFLAGS §­ зҐ­Ёп¬Ё ў (eSP+8);
ELSE
‡ Јаг§Є  CS:IP Ё§ б⥪ ;
‡ Јаг§Є  FLAGS §­ зҐ­Ёп¬Ё ў (eSP+4);
FI;
‡ Јаг§Є  SS:eSP Ё§ б⥪ ;
‡ Јаг§Є  ॣЁбва  CS ¤ҐбЄаЁЇв®а®¬ CS;
‡ Јаг§Є  ॣЁбва  SS ¤ҐбЄаЁЇв®а®¬ SS;
FOR Є ¦¤®Ј® Ё§ ES, FS, GS Ё DS
DO;
IF ⥪г饥 §­ зҐ­ЁҐ ॣЁбва  ­Ґ¤®бв®ўҐа­® ¤«п ў­Ґи­ҐЈ® га®ў­п;
THEN ®Ў­г«Ґ­ЁҐ ॣЁбва  Ё ®зЁбвЄ  д« Ј  ¤®бв®ўҐа­®бвЁ;
FI;
—в®Ўл Ўлвм ¤®бв®ўҐа­л¬, гбв ­®ўЄ  ॣЁбва  ¤®«¦­ 
㤮ў«Ґвў®апвм б«Ґ¤гойЁ¬ бў®©бвў ¬:
€­¤ҐЄб ᥫҐЄв®а  ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е ҐЈ® в Ў«Ёжл
¤ҐбЄаЁЇв®а®ў;
Ѓ ©в AR ¤®«¦Ґ­ § ¤ ў вм ᥣ¬Ґ­в ¤ ­­ле, ¤®бвгЇ­л© ¤«п
§ ЇЁбЁ, Ё«Ё Є®¤®ўл© ᥣ¬Ґ­в, ¤®бвгЇ­л© ¤«п з⥭Ёп;
IF н⮠ᥣ¬Ґ­в ¤ ­­ле Ё«Ё ­Ґ-Є®­д®а¬­л© Є®¤®ўл© ᥣ¬Ґ­в,
THEN DPL ¤®«¦Ґ­ Ўлвм > CPL, Ё«Ё DPL ¤®«¦Ґ­ Ўлвм < RPL;
OD;


ЋЇЁб ­ЁҐ
--------

‚ ०Ё¬Ґ ॠ«м­ле  ¤аҐб®ў Є®¬ ­¤  IRET Ё§ў«ҐЄ Ґв Ё§ б⥪ 
гЄ § вҐ«м Є®¬ ­¤, ॣЁбва CS Ё д« Ј®ўл© ॣЁбва, Ї®б«Ґ 祣®
ў®§®Ў­®ў«пҐв ўлЇ®«­Ґ­ЁҐ ЇаҐаў ­­®© Ї®¤Їа®Ја ¬¬л.

‚ § йЁйҐ­­®¬ ०Ё¬Ґ ¤Ґ©бвўЁҐ Є®¬ ­¤л IRET § ўЁбЁв ®в гбв ­®ўЄЁ
д« Ј  ў«®¦Ґ­­®бвЁ § ¤ зЁ (NT) ў ॣЁбвॠ䫠Ј®ў. ЏаЁ Ё§ў«ҐзҐ­ЁЁ
Ё§ б⥪  ­®ў®Ј® ®Ўа §  д« Ј®ў ЎЁвл IOPL д« Ј®ў®Ј® ॣЁбва 
Ё§¬Ґ­повбп в®«мЄ® ЇаЁ CPL а ў­®¬ 0.

…б«Ё д« Ј NT ®зЁйҐ­, Є®¬ ­¤  IRET ў®§ўа й Ґвбп Ё§ Їа®жҐ¤гал
ЇаҐалў ­Ёп ЎҐ§ ЇҐаҐЄ«о祭Ёп § ¤ зЁ. Љ®¤, ў Є®в®ал© Їа®Ёб室Ёв
ў®§ўа в, ¤®«¦Ґ­ Ўлвм а ў­л¬ Ё«Ё ¬Ґ­ҐҐ ЇаЁўЁ«ҐЈЁа®ў ­­л¬, 祬
Ї®¤Їа®Ја ¬¬  ЇаҐалў ­Ёп (Є Є гЄ §лў ов ЎЁвл RPL ᥫҐЄв®а  CS,
Ё§ў«ҐЄ Ґ¬®Ј® Ё§ б⥪ ). …б«Ё Є®¤ ­ §­ зҐ­Ёп ¬Ґ­ҐҐ
ЇаЁўЁ«ҐЈЁа®ў ­, в® Є®¬ ­¤  IRET в Є¦Ґ Ё§ў«ҐЄ Ґв Ё§ б⥪ 
гЄ § вҐ«м б⥪  Ё SS.

…б«Ё д« Ј NT гбв ­®ў«Ґ­, в® Є®¬ ­¤  IRET ўлЇ®«­пҐвбп ў ®Ўа в­®©
Ї®б«Ґ¤®ў вҐ«м­®бвЁ ®в­®бЁвҐ«м­® Є®¬ ­¤ CALL Ё«Ё INT, ўл§ў ўиЁе
ЇҐаҐЄ«о祭ЁҐ § ¤ зЁ. ЋЎ­®ў«Ґ­­®Ґ б®бв®п­ЁҐ § ¤ зЁ, ўлЇ®«­по饩
Є®¬ ­¤г IRET, б®еа ­пҐвбп ў ҐҐ ᥣ¬Ґ­вҐ б®бв®п­Ёп § ¤ зЁ (TSS).
ЏаЁ Ї®ўв®а­®¬ ўе®¤Ґ ў § ¤ зг ўЇ®б«Ґ¤бвўЁЁ ўлЇ®«­пҐвбп Є®¤,
Є®в®ал© б«Ґ¤гҐв §  Є®¬ ­¤®© IRET.


€§¬Ґ­пҐ¬лҐ д« ЈЁ
----------------

€§¬Ґ­повбп ўбҐ д« ЈЁ; ॣЁбва д« Ј®ў Ё§ў«ҐЄ Ґвбп Ё§ б⥪ .

€бЄ«о祭Ёп § йЁйҐ­­®Ј® ०Ё¬ 
----------------------------------

#GP, #NP Ё«Ё #SS, Є Є гЄ § ­® ўлиҐ ў а §¤Ґ«Ґ "ђ Ў®в  Є®¬ ­¤л".


€бЄ«о祭Ёп ०Ё¬  ॠ«м­ле  ¤аҐб®ў
---------------------------------------

ЏаҐалў ­ЁҐ 13, Ґб«Ё Є Є п-«ЁЎ® з бвм Ё§ў«ҐЄ Ґ¬®Ј® Ё§ б⥪ 
®ЇҐа ­¤  «Ґ¦Ёв §   ¤аҐб®¬ 0FFFFH.

€бЄ«о祭Ёп ўЁавг «м­®Ј® ०Ё¬  8086
----------------------------------------

‘Ў®© #GP(0), Ґб«Ё IOPL ¬Ґ­миҐ 3, зв® Ї®§ў®«пҐв н¬г«пжЁо.

-----------------------------------------------------------------



Jcc - ЏҐаҐе®¤, Ґб«Ё гб«®ўЁҐ ЇҐаҐе®¤  㤮ў«Ґвў®апҐвбп

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|77 cb JA rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ўлиҐ |
| (CF = 0 Ё ZF = 0) |
|73 cb JAE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ўлиҐ |
| Ё«Ё а ў­® (CF = 0) |
|72 cb JB rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ё¦Ґ |
| (CF = 1) |
|76 cb JBE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ё¦Ґ |
| Ё«Ё а ў­® (CF = 1 Ё«Ё ZF = 1) |
|72 cb JC rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ЇҐаҐ­®б |
| (CF = 1) |
|E3 cb JCXZ rel8 8,5 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ॣЁбва |
| CX а ўҐ­ 0 |
|E3 cb JECXZ rel8 8,5 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ॣЁбва |
| ECX а ўҐ­ 0 |
|74 cb JE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё а ў­® |
| (ZF = 1) |
|74 cb JZ rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё 0 |
| (ZF = 1) |
|7F cb JG rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё Ў®«миҐ |
| (ZF = 0 Ё SF = OF) |
|7D cb JGE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё Ў®«миҐ |
| Ё«Ё а ў­® (SF = OF) |
|7C cb JL rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ¬Ґ­миҐ |
| (SF <> OF) |
|7E cb JLE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ¬Ґ­миҐ |
| Ё«Ё а ў­® (ZF=1 Ё«Ё SF <> OF) |
|76 cb JNA rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґ ўлиҐ |
| (CF = 1 Ё ZF = 1) |
|72 cb JNAE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґ ўлиҐ |
| Ё«Ё а ў­® (CF = 1) |
|73 cb JNB rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґ ­Ё¦Ґ |
| (CF = 0) |
|77 cb JNBE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґ ­Ё¦Ґ |
| Ё«Ё а ў­® (CF=0 Ё ZF=0) |
|73 cb JNC rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґв |
| ЇҐаҐ­®б  (CF = 0) |
|75 cb JNE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґ а ў­®|
| (ZF = 0) |
|7E cb JNG rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґ |
| Ў®«миҐ (ZF = 1 Ё«Ё SF <> OF) |
|7C cb JNGE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґ |
| Ў®«миҐ Ё«Ё а ў­® (SF <> OF) |
|7D cb JNL rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґ |
| ¬Ґ­миҐ (SF = OF) |
|7F cb JNLE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґ ¬Ґ­м-|
| иҐ Ё«Ё а ў­® (ZF=0 Ё SF=OF) |
|71 cb JNO rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґв |
| ЇҐаҐЇ®«­Ґ­Ёп (OF=0) |
|7B cb JNP rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґв Є®­-|
| ва®«п зҐв­®бвЁ (PF = 0) |
|79 cb JNS rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґв |
| §­ Є  (SF = 0) |
|75 cb JNZ rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґв ­г«п|
| (ZF = 0) |
|70 cb JO rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё |
| ЇҐаҐЇ®«­Ґ­ЁҐ (OF = 1) |
|7A cb JP rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё Є®­ва®«м|
| зҐв­®бвЁ (PF = 1) |
|7A cb JPE rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё Є®­ва®«м|
| ­  Їа®ўҐаЄг зҐв­®бвЁ (PF = 1) |
|7B cb JPO rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё Є®­ва®«м|
| ­  Їа®ўҐаЄг ­ҐзҐв­®бвЁ (PF = 0)|
|78 cb JS rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё §­ Є |
| (SF = 1) |
|74 cb JZ rel8 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­®«м |
| (ZF = 1) |
|0F 87 cw/dw JA rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ўлиҐ |
| (CF = 0 Ё ZF = 0) |
|0F 83 cw/dw JAE rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ўлиҐ |
| Ё«Ё а ў­® (CF = 0) |
|0F 82 cw/dw JB rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ё¦Ґ |
| (CF = 1) |
|0F 86 cw/dw JBE rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ё¦Ґ |
| Ё«Ё а ў­® (CF = 1 Ё«Ё ZF = 1) |
|0F 82 cw/dw JC rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ЇҐаҐ­®б |
| (CF = 1) |
|0F 84 cw/dw JE rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё а ў­® |
| (ZF = 1) |
|0F 84 cw/dw JZ rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё 0 |
| (ZF = 1) |
|0F 8F cw/dw JG rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё Ў®«миҐ |
| (ZF = 0 Ё SF = OF) |
|0F 8D cw/dw JGE rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё Ў®«миҐ |
| Ё«Ё а ў­® (SF = OF) |
|0F 8C cw/dw JL rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ¬Ґ­миҐ |
| (SF <> OF) |
|0F 8E cw/dw JLE rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ¬Ґ­миҐ |
| Ё«Ё а ў­® (ZF=1 Ё«Ё SF <> OF) |
|0F 86 cw/dw JNA rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґ ўлиҐ |
| (CF = 1 Ё ZF = 1) |
|0F 82 cw/dw JNAE rel16/32 3,1 ЏҐаҐе®¤ Є®а®вЄЁ©, Ґб«Ё ­Ґ ўлиҐ |
| Ё«Ё а ў­® (CF = 1) |
|0F 83 cw/dw JNB rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґ ­Ё¦Ґ |
| (CF = 0) |
|0F 87 cw/dw JNBE rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґ ­Ё¦Ґ |
| Ё«Ё а ў­® (CF=0 Ё ZF=0) |
|0F 83 cw/dw JNC rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґв |
| ЇҐаҐ­®б  (CF = 0) |
|0F 85 cw/dw JNE rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґ а ў­® |
| (ZF = 0) |
|0F 8E cw/dw JNG rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґ |
| Ў®«миҐ (ZF = 1 Ё«Ё SF <> OF) |
|0F 8C cw/dw JNGE rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґ |
| Ў®«миҐ Ё«Ё а ў­® (SF <> OF) |
|0F 8D cw/dw JNL rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґ |
| ¬Ґ­миҐ (SF = OF) |
|0F 8F cw/dw JNLE rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґ ¬Ґ­м- |
| иҐ Ё«Ё а ў­® (ZF=0 Ё SF=OF) |
|0F 81 cw/dw JNO rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґв |
| ЇҐаҐЇ®«­Ґ­Ёп (OF=0) |
|0F 8B cw/dw JNP rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґв Є®­- |
| ва®«п зҐв­®бвЁ (PF = 0) |
|0F 89 cw/dw JNS rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґв |
| §­ Є  (SF = 0) |
|0F 85 cw/dw JNZ rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­Ґв ­г«п |
| (ZF = 0) |
|0F 80 cw/dw JO rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё |
| ЇҐаҐЇ®«­Ґ­ЁҐ (OF = 1) |
|0F 8A cw/dw JP rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё Є®­ва®«м |
| зҐв­®бвЁ (PF = 1) |
|0F 8A cw/dw JPE rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё Є®­ва®«м |
| ­  Їа®ўҐаЄг зҐв­®бвЁ (PF = 1) |
|0F 8B cw/dw JPO rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё Є®­ва®«м |
| ­  Їа®ўҐаЄг ­ҐзҐв­®бвЁ (PF = 0)|
|0F 88 cw/dw JS rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё §­ Є |
| (SF = 1) |
|0F 84 cw/dw JZ rel16/32 3,1 ЏҐаҐе®¤ Ў«Ё¦­Ё©, Ґб«Ё ­®«м |
| (ZF = 1) |
-----------------------------------------------------------------

ЏаЁ¬Ґз ­ЁҐ: ЏҐаў®Ґ зЁб«® в Єв®ўле жЁЄ«®ў ®в­®бЁвбп Є б«гз о,
Є®Ј¤  гб«®ўЁҐ ЇҐаҐе®¤  ўлЇ®«­пҐвбп (ЇҐаҐе®¤ Їа®Ёб室Ёв); ўв®а®Ґ
§­ зҐ­ЁҐ ®в­®бЁвбп Є б«гз о, Є®Ј¤  гб«®ўЁҐ ­Ґ ўлЇ®«­пҐвбп (Ё
ЇҐаҐе®¤ ­Ґ Їа®Ёб室Ёв). rel16/32 гЄ §лў Ґв, зв® нвЁ Є®¬ ­¤л
®в®Ўа ¦ овбп ¤ўг¬п Є®¬ ­¤ ¬Ё : ®¤­  б 16-а §ап¤­л¬ ®в­®бЁвҐ«м­л¬
ᬥ饭ЁҐ¬,   ўв®а п б 32-а §ап¤­л¬ ®в­®бЁвҐ«м­л¬ ᬥ饭ЁҐ¬, ў
§ ўЁбЁ¬®бвЁ ®в  ваЁЎгв  а §¬Ґа  ®ЇҐа ­¤  ¤ ­­®© Є®¬ ­¤л.


ђ Ў®в  Є®¬ ­¤л
--------------

IF гб«®ўЁҐ
THEN
EIP <- EIP + SignExtend(rel8/16/32);
IF OperandSize = 16
THEN EIP <- EIP AND 0000FFFFH;
FI;
FI;


ЋЇЁб ­ЁҐ
--------

Љ®¬ ­¤л гб«®ў­®Ј® ЇҐаҐе®¤  (§  ЁбЄ«о祭ЁҐ¬ Є®¬ ­¤л JCXZ)
Їа®ўҐапов д« ЈЁ, Є®в®алҐ Ўл«Ё гбв ­®ў«Ґ­л ЇаҐ¤л¤г饩 Є®¬ ­¤®©.
“б«®ўЁп ¤«п Є ¦¤®© ¬­Ґ¬®­ЁзҐбЄ®© д®а¬л Є®¬ ­¤л ¤ ­л ў ЄагЈ«ле
бЄ®ЎЄ е ўлиҐ Ї®б«Ґ Є ¦¤®Ј® ®ЇЁб ­Ёп. ’Ґа¬Ё­л "¬Ґ­миҐ" Ё
"Ў®«миҐ" ЁбЇ®«м§говбп ЇаЁ ба ў­Ґ­ЁЁ 楫ле б® §­ Є®¬; "ўлиҐ" Ё
"­Ё¦Ґ" - ¤«п 楫ле ЎҐ§ §­ Є .

…б«Ё гб«®ўЁҐ ўлЇ®«­пҐвбп, в® Їа®Ёб室Ёв ЇҐаҐе®¤ Ї®  ¤аҐбг,
§ ¤ ў Ґ¬®¬г ®ЇҐа ­¤®¬. €бЇ®«м§®ў ­ЁҐ ¤ ­­®© Є®¬ ­¤л ­ ЁЎ®«ҐҐ
нд䥪⨢­®, Є®Ј¤  楫м гб«®ў­®Ј® ЇҐаҐе®¤  ­ е®¤Ёвбп ў ⥪г饬
Є®¤®ў®¬ ᥣ¬Ґ­вҐ Ё ў ЇаҐ¤Ґ« е ®в -128 ¤® +127 Ў ©в®ў
®в­®бЁвҐ«м­® ЇҐаў®Ј® Ў ©в  б«Ґ¤го饩 Є®¬ ­¤л.

–Ґ«м ЇҐаҐе®¤  в Є¦Ґ ¬®¦Ґв ­ е®¤Ёвмбп ў ЇаҐ¤Ґ« е ®в -32768 ¤®
+32767 ( ваЁЎгв а §¬Ґа  ᥣ¬Ґ­в  16) Ё«Ё ®в -2**31 ¤® +2**31-1
( ваЁЎгв а §¬Ґа  ᥣ¬Ґ­в  32) ®в­®бЁвҐ«м­® ЇҐаў®Ј® Ў ©в 
б«Ґ¤го饩 Є®¬ ­¤л. …б«Ё жҐ«м Є®¬ ­¤л гб«®ў­®Ј® ЇҐаҐе®¤ 
­ е®¤Ёвбп ў ¤агЈ®¬ ᥣ¬Ґ­вҐ, ЁбЇ®«м§г©вҐ Є®¬ ­¤г б
Їа®вЁў®Ї®«®¦­л¬ гб«®ўЁҐ¬ ЇҐаҐе®¤ , Є®в®а п "®Ў®©¤Ґв" Є®¬ ­¤г
¤ «м­ҐЈ® ЎҐ§гб«®ў­®Ј® ЇҐаҐе®¤  Є ¤агЈ®¬г ᥣ¬Ґ­вг. Ќ ЇаЁ¬Ґа, ўл
­Ґ ¬®¦ҐвҐ § ЇЁб вм:

JZ FARLABEL;


‚¬Ґбв® нв®Ј® ­ ЇЁиЁвҐ:

JNZ BEYOND;
JMP FARLABEL;
BEYOND:

Џ®бЄ®«мЄг ¬®¦Ґв бгйҐбвў®ў вм ­ҐбЄ®«мЄ® бЇ®б®Ў®ў Ё­вҐаЇаҐв жЁЁ
Є®­ЄаҐв­®Ј® б®бв®п­Ёп д« Ј®ў, ASM386 ®ЎҐбЇҐзЁў Ґв Ў®«ҐҐ ®¤­®©
¬­Ґ¬®­ЁзҐбЄ®© д®а¬л ¤«п Ў®«миЁ­бвў  Є®¤®ў ®ЇҐа жЁЁ гб«®ў­®Ј®
ЇҐаҐе®¤ . Ќ ЇаЁ¬Ґа, Ґб«Ё ўл ба ў­Ё«Ё ¤ў  бЁ¬ў®«  ў AX Ё е®вЁвҐ
ўлЇ®«­Ёвм ЇҐаҐе®¤, Ґб«Ё ®­Ё а ў­л, ЁбЇ®«м§г©вҐ Є®¬ ­¤г JE, Ё«Ё,
Ґб«Ё ўл ўлЇ®«­Ё«Ё ®ЇҐа жЁо € ¤«п ॣЁбва  AX Ё ¬ бЄ®©,
§ ЇЁб ­­®© ў ЎЁв®ў®¬ Ї®«Ґ, Ё е®вЁвҐ, зв®Ўл ЇҐаҐе®¤ Їа®Ёб室Ё«
в®«мЄ® ЇаЁ १г«мв вҐ, а ў­®¬ 0, ЁбЇ®«м§г©вҐ Є®¬ ­¤г JZ, Є®в®а п
пў«пҐвбп бЁ­®­Ё¬®¬ Є®¬ ­¤л JE.

Љ®¬ ­¤  JCXZ ®в«Ёз Ґвбп ®в ¤агЈЁе Є®¬ ­¤ гб«®ў­®Ј® ЇҐаҐе®¤  ⥬,
зв® ®­  Їа®ўҐапҐв ­Ґ д« ЈЁ,   ᮤҐа¦Ё¬®Ґ ॣЁбва®ў CX Ё«Ё ECX ­ 
а ўҐ­бвў® 0. Љ®¬ ­¤  JCXZ Ї®«Ґ§­  ў ­ з «Ґ гб«®ў­®Ј® жЁЄ« ,
Є®в®ал© § Є ­зЁў Ґвбп Є®¬ ­¤®© гб«®ў­®Ј® ЇҐаҐе®¤  Є ­ з «г жЁЄ« 
(­ ЇаЁ¬Ґа, LOOPNE ¬ҐвЄ  楫Ё). Љ®¬ ­¤  JCXZ ЇаҐ¤®вўа й Ґв
ўе®¦¤Ґ­ЁҐ ў жЁЄ« ЇаЁ ॣЁбвॠCX Ё«Ё ECX, а ў­®¬ ­г«о, зв® ¬®¦Ґв
ЇаЁўҐбвЁ Є ўлЇ®«­Ґ­Ёо жЁЄ«  64Љ Ё«Ё 32ѓ а § ў¬Ґбв® ­г«п а §.


€§¬Ґ­пҐ¬лҐ д« ЈЁ
----------------

Ћвбгвбвўгов

€бЄ«о祭Ёп § йЁйҐ­­®Ј® ०Ё¬ 
----------------------------------

#GP (0), Ґб«Ё ᬥ饭ЁҐ, ­  Є®в®а®Ґ § ¤ ­ ЇҐаҐе®¤, «Ґ¦Ёв ў­Ґ
Ја ­Ёж Є®¤®ў®Ј® ᥣ¬Ґ­в .


€бЄ«о祭Ёп ०Ё¬  ॠ«м­ле  ¤аҐб®ў
---------------------------------------

Ћвбгвбвўгов

€бЄ«о祭Ёп ўЁавг «м­®Ј® ०Ё¬  8086
----------------------------------------

Ћвбгвбвўгов

ЏаЁ¬Ґз ­ЁҐ
----------

Љ®¬ ­¤  JCXZ ўлЇ®«­пҐвбп ¤®«миҐ, 祬 Ї®б«Ґ¤®ў вҐ«м­®бвм Ё§ ¤ўге
Є®¬ ­¤, ба ў­Ёў ой п ॣЁбва-бзҐвзЁЄ б ­г«Ґ¬ Ё ўлЇ®«­пой п
ЇҐаҐе®¤ ў б«гз Ґ а ўҐ­бвў .

‚ᥠЄ®¬ ­¤л ўҐвў«Ґ­Ёп ЇаҐ®Ўа §говбп ¤«п ўлЎ®аЄЁ ў 16-а §ап¤­лҐ
Є®¤л, ­Ґ§ ўЁбЁ¬® ®в  ¤аҐб  ЇҐаҐе®¤  Ё«Ё ў®§¬®¦­®бвЁ ЄҐиЁа®ў ­Ёп.

-----------------------------------------------------------------

JMP - ЏҐаҐе®¤

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
|EB cb JMP rel8 3 ЏҐаҐе®¤ Є®а®вЄЁ© |
|E9 cw JMP rel16 3 ЏҐаҐе®¤ Ў«Ё¦­Ё©, ᬥ饭ЁҐ |
| ®в­®бЁвҐ«м­® б«Ґ¤го饩 Є®¬ ­¤л|
|FF /4 JMP r/m16 5/5 ЏҐаҐе®¤ Ў«Ё¦­Ё© Є®бўҐ­­л© |
|EA cd JMP ptr16:16 17,pm=19 ЏҐаҐе®¤ ¬Ґ¦бҐЈ¬Ґ­в­л©, 4-Ў ©- |
| в®ўл© ­ҐЇ®б।б⢥­­л©  ¤аҐб |
|EA cd JMP ptr16:16 32 ЏҐаҐе®¤ Є и«о§г ўл§®ў , в  ¦Ґ |
| ЇаЁўЁ«ҐЈЁа®ў ­­®бвм |
|EA cd JMP ptr16:16 42+TS ЏҐаҐе®¤ зҐаҐ§ ᥣ¬Ґ­в б®бв®п- |
| ­Ёп § ¤ зЁ |
|EA cd JMP ptr16:16 42+TS ЏҐаҐе®¤ зҐаҐ§ и«о§ § ¤ зЁ |
|FF/5d JMP m16:16 13,pm=18 ЏҐаҐе®¤ r/m16:16 Є®бўҐ­­л© Ё |
| ¬Ґ¦бҐЈ¬Ґ­в­л© |
|FF /5 JMP m16:16 3 ЏҐаҐе®¤ Є и«о§г ўл§®ў , в  ¦Ґ |
| ЇаЁўЁ«ҐЈЁа®ў ­­®бвм |
|FF /5 JMP m16:16 41+TS ЏҐаҐе®¤ зҐаҐ§ ᥣ¬Ґ­в б®бв®п- |
| ­Ёп § ¤ зЁ |
|FF /5 JMP m16:16 42+TS ЏҐаҐе®¤ зҐаҐ§ и«о§ § ¤ зЁ |
|E9 cd JMP rel32 3 ЏҐаҐе®¤ Ў«Ё¦­Ё©, ᬥ饭ЁҐ |
| ®в­®бЁвҐ«м­® б«Ґ¤го饩 Є®¬ ­¤л|
|FF /4 JMP r/m32 5/5 ЏҐаҐе®¤ Ў«Ё¦­Ё© Є®бўҐ­­л© |
|EA cp JMP ptr16:32 13,pm=18 ЏҐаҐе®¤ ¬Ґ¦бҐЈ¬Ґ­в­л©, 6-Ў ©- |
| в®ўл© ­ҐЇ®б।б⢥­­л©  ¤аҐб |
|EA cp JMP ptr16:32 31 ЏҐаҐе®¤ Є и«о§г ўл§®ў , в  ¦Ґ |
| ЇаЁўЁ«ҐЈЁа®ў ­­®бвм |
|EA cp JMP ptr16:32 42+TS ЏҐаҐе®¤ зҐаҐ§ ᥣ¬Ґ­в б®бв®п- |
| ­Ёп § ¤ зЁ |
|EA cp JMP ptr16:32 43+TS ЏҐаҐе®¤ зҐаҐ§ и«о§ § ¤ зЁ |
|FF /5 JMP m16:32 13,pm=18 ЏҐаҐе®¤ ¬Ґ¦бҐЈ¬Ґ­в­л©,  ¤аҐб |
| ў ¤ў®©­®¬ б«®ўҐ r/m |
|FF /5 JMP m16:32 31 ЏҐаҐе®¤ Є и«о§г ўл§®ў , в  ¦Ґ |
| ЇаЁўЁ«ҐЈЁа®ў ­­®бвм |
|FF /5 JMP m16:32 41+TS ЏҐаҐе®¤ зҐаҐ§ ᥣ¬Ґ­в б®бв®п- |
| ­Ёп § ¤ зЁ |
|FF /5 JMP m16:32 42+TS ЏҐаҐе®¤ зҐаҐ§ и«о§ § ¤ зЁ |
-----------------------------------------------------------------

ЏаЁ¬Ґз ­ЁҐ: §­ зҐ­Ёп ts § ¤ овбп б«Ґ¤го饩 в Ў«ЁжҐ©:

-----------------------------------------------------------------
| Ќ®ў п § ¤ з 
‘в а п § ¤ з  |-------------------------------------------
| Є TSS i486 | Є TSS 80286 | Є TSS VM
-----------------------------------------------------------------
VM/i486/TSS 80286 | 199 | 180 | 177
-----------------------------------------------------------------

ђ Ў®в  Є®¬ ­¤л
--------------

IF Є®¬ ­¤  = ®в­®бЁвҐ«м­л© ЇҐаҐе®¤ JMP
(* в.Ґ. ®ЇҐа ­¤ нв® rel8, rel16 Ё«Ё rel32 *)
THEN
EIP <- EUP + rel8/16/32;
IF OperandSize = 16
THEN EIP <- EIP AND 0000FFFFH;
FI;
FI;

IF Є®¬ ­¤  = Ў«Ё¦­Ё© Є®бўҐ­­л© ЇҐаҐе®¤ JMP
(* в.Ґ. ®ЇҐа ­¤ нв® r/m16 Ё«Ё r/m32 *)
THEN
IF OperandSize = 16
THEN
EIP <- [r/m16 AND 0000FFFFH;
ELSE (* OperandSize = 32 *)
EIP <- [r/m32;
FI;
FI;


IF (PE = 0 OR (PE = 1 AND VM = 1))
(* ०Ё¬ ॠ«м­ле  ¤аҐб®ў Ё«Ё ўЁавг «м­л© ०Ё¬ 8086 *)
AND Є®¬ ­¤  = ¤ «м­Ё© JMP
(* в.Ґ. вЁЇ ®ЇҐа ­¤  а ўҐ­ m16:16, m16:32, ptr16:16, ptr16:32 *)
THEN GOTO ђ…†€Њ-ђ…Ђ‹њЌ›•-Ђ„ђ…‘Ћ‚-€‹€-V86
IF вЁЇ ®ЇҐа ­¤  = m16:16 Ё«Ё m16:32
THEN (* Є®бўҐ­­л© *)
IF OperandSize = 16
THEN
CS:IP <- [m16:16;
EIP <- EIP AND 0000FFFFH: (* ®зЁбвЄ  бв аиЁе 16 ЎЁв®ў *)
ELSE (* OperanfSize = 32 *)
CS:EIP <- [m16:32;
FI;
FI;
IF вЁЇ ®ЇҐа ­¤  = ptr16:16 Ё«Ё ptr16:32
THEN
IF OperandSize = 16
THEN
CS:IP <- ptr16:16;
EIP <- EIP AND 0000FFFFH: (* ®зЁбвЄ  бв аиЁе 16 ЎЁв®ў *)
ELSE (* OperanfSize = 32 *)
CS:EIP <- ptrm16:32;
FI;
FI;
FI;


IF (PE = 1 AND VM = 0) (* ‡ йЁйҐ­­л© ०Ё¬, ­® ­Ґ ०Ё¬ V86 *)
AND Є®¬ ­¤  = ¤ «м­Ё© JMP
THEN
IF вЁЇ ®ЇҐа ­¤  = m16 Ё«Ё m16:32
THEN (* Љ®бўҐ­­л© *)
Џа®ўҐаЁвм ¤®бвгЇ Є ¤ў®©­®¬г б«®ўг EA;
#GP(0) Ё«Ё #SS(0) IF ­ аг襭ЁҐ Ја ­Ёжл;
FI;
‘Ґ«ҐЄв®а ­ §­ зҐ­Ёп ­Ґ ¤®«¦Ґ­ Ўлвм Їгбвл¬, ELSE #GP(0);
€­¤ҐЄб ᥫҐЄв®а  ­ §­ зҐ­Ёп ¤®«¦Ґ­ Ўлвм ў ЇаҐ¤Ґ« е
Ја ­Ёж ¤ҐбЄаЁЇв®а­®© в Ў«Ёжл; ELSE #GP(ᥫҐЄв®а)
‚ § ўЁбЁ¬®бвЁ ®в Ў ©вAR ¤ҐбЄаЁЇв®а  ­ §­ зҐ­Ёп:
GOTO ЉЋЌ”ЋђЊЌ›‰-ЉЋ„Ћ‚›‰-‘…ѓЊ…Ќ’;
GOTO Ќ…ЉЋЌ”ЋђЊЌ›‰-ЉЋ„Ћ‚›‰-‘…ѓЊ…Ќ’;
GOTO ‹ћ‡-‚›‡Ћ‚Ђ;
GOTO ‹ћ‡-‡Ђ„Ђ—€;
GOTO ‘…ѓЊ…Ќ’-‘Ћ‘’ЋџЌ€џ-‡Ђ„Ђ—€;
ELSE #GP(ᥫҐЄв®а); (* ЌҐ¤®ЇгбвЁ¬л© Ў ©в AR ў ¤ҐбЄаЁЇв®аҐ *)
FI;


ЉЋЌ”ЋђЊЌ›‰-ЉЋ„Ћ‚›‰-‘…ѓЊ…Ќ’:
DPL ¤ҐбЄаЁЇв®а  ¤®«¦Ґ­ Ўлвм <= CPL ELSE #GP(ᥫҐЄв®а);
‘ҐЈ¬Ґ­в ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм ELSE #NP (ᥫҐЄв®а);
“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е Є®¤®ў®Ј® ᥣ¬Ґ­в  ELSE
#GP(0);
IF OperandSize = 16
THEN ‡ Јаг§Ёвм CS:EIP Ё§ гЄ § вҐ«п ­ §­ зҐ­Ёп;
ELSE ‡ Јаг§Ёвм CS:IP Ё§ гЄ § вҐ«п ­ §­ зҐ­Ёп;
FI;
‡ Јаг§Ёвм ॣЁбва CS ­®ўл¬ ¤ҐбЄаЁЇв®а®¬ ᥣ¬Ґ­в ;

Ќ…ЉЋЌ”ЋђЊЌ›‰-ЉЋ„Ћ‚›‰-‘…ѓЊ…Ќ’:
RPL ᥫҐЄв®а  ­ §­ зҐ­Ёп ¤®«¦Ґ­ Ўлвм <= CPL ELSE #GP(ᥫҐЄв®а);
DPL ¤ҐбЄаЁЇв®а  ¤®«¦Ґ­ Ўлвм = CPL ELSE #GP(ᥫҐЄв®а);
‘ҐЈ¬Ґ­в ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм ELSE #NP (ᥫҐЄв®а);
“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е Є®¤®ў®Ј® ᥣ¬Ґ­в  ELSE
#GP(0);
IF OperandSize = 32
THEN ‡ Јаг§Ёвм CS:EIP Ё§ гЄ § вҐ«п ­ §­ зҐ­Ёп;
ELSE ‡ Јаг§Ёвм CS:IP Ё§ гЄ § вҐ«п ­ §­ зҐ­Ёп;
FI;
‡ Јаг§Ёвм ॣЁбва CS ­®ўл¬ ¤ҐбЄаЁЇв®а®¬ ᥣ¬Ґ­в ;
“бв ­®ўЁвм Ї®«Ґ RPL ¤«п CS а ў­л¬ CPL;

‹ћ‡-‚›‡Ћ‚Ђ:
DPL ¤ҐбЄаЁЇв®а  ¤®«¦Ґ­ Ўлвм >= CPL ELSE #GP(ᥫҐЄв®а и«о§ );
DPL ¤ҐбЄаЁЇв®а  ¤®«¦Ґ­ Ўлвм >= RPL ᥫҐЄв®а  и«о§  ELSE
#GP(ᥫҐЄв®а и«о§ );
«о§ ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм ELSE #NP(ᥫҐЄв®а и«о§ );
ђ бᬮваЁ¬ ᥫҐЄв®а Є®¤®ў®Ј® ᥣ¬Ґ­в  ў ¤ҐбЄаЁЇв®аҐ и«о§ 
ўл§®ў :
‘Ґ«ҐЄв®а ­Ґ ¤®«¦Ґ­ Ўлвм Їгбвл¬ ELSE #GP(0)
‘Ґ«ҐЄв®а ¤®«¦Ґ­ Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёж ҐЈ® ¤ҐбЄаЁЇв®а­®©
в Ў«Ёжл ELSE #GP(ᥫҐЄв®а CS)
Ѓ ©в AR ўлЎа ­­®Ј® ¤ҐбЄаЁЇв®а  ¤®«¦Ґ­ ®Ў®§­ з вм Є®¤®ўл©
ᥣ¬Ґ­в ELSE #GP (ᥫҐЄв®а CS)
IF ­Ґ-Є®­д®а¬­л©
THEN DPL ¤ҐбЄаЁЇв®а  Є®¤®ў®Ј® ᥣ¬Ґ­в  ¤®«¦Ґ­ Ўлвм = CPL
ELSE #GP(ᥫҐЄв®а CS);
FI;
IF Є®­д®а¬­л©
THEN DPL ¤ҐбЄаЁЇв®а  Є®¤®ў®Ј® ᥣ¬Ґ­в  ¤®«¦Ґ­ Ўлвм <= CPL;
ELSE #GP(ᥫҐЄв®а CS);
Љ®¤®ўл© ᥣ¬Ґ­в ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм ELSE #NP(ᥫҐЄв®а CS);
“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е Є®¤®ў®Ј® ᥣ¬Ґ­в  ELSE
#GP(0);
IF OperandSize = 32
THEN ‡ Јаг§Ёвм CS:EIP Ё§ и«о§  ўл§®ў ;
ELSE ‡ Јаг§Ёвм CS:IP Ё§ и«о§  ўл§®ў ;
FI;
‡ Јаг§Ёвм ॣЁбва CS ­®ўл¬ ¤ҐбЄаЁЇв®а®¬ Є®¤®ў®Ј® ᥣ¬Ґ­в ;
“бв ­®ўЁвм Ї®«Ґ RPL ¤«п CS а ў­л¬ CPL;


‹ћ‡-‡Ђ„Ђ—€:
DPL ¤ҐбЄаЁЇв®а  и«о§  ¤®«¦Ґ­ Ўлвм >= CPL ELSE #TS(ᥫҐЄв®а и«о§ )
DPL ¤ҐбЄаЁЇв®а  и«о§  ¤®«¦Ґ­ Ўлвм >= RPL ᥫҐЄв®а  и«о§  ELSE
#GP(ᥫҐЄв®а и«о§ )
«о§ § ¤ зЁ ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм ELSE #NP(ᥫҐЄв®а и«о§ )
€бб«Ґ¤®ў вм ᥫҐЄв®а TSS, § ¤ ­­л© ў ¤ҐбЄаЁЇв®аҐ и«о§  § ¤ зЁ:
Ћ­ ¤®«¦Ґ­ § ¤ ў вм ЎЁв ѓ«®Ў «м­л©/‹®Є «м­л© Є Є ѓ«®Ў «м­л©
ELSE #GP(ᥫҐЄв®а TSS)
€­¤ҐЄб ¤®«¦Ґ­ ­ е®¤Ёвмбп ў ЇаҐ¤Ґ« е Ја ­Ёжл GDT
ELSE #GP(ᥫҐЄв®а TSS)
Ѓ ©в AR ¤ҐбЄаЁЇв®а  TSS ¤®«¦Ґ­ § ¤ ў вм ¤®бвгЇ­л© TSS
(¬« ¤иЁҐ ЎЁвл 00001);
ELSE #GP(ᥫҐЄв®а TSS)
‘ҐЈ¬Ґ­в б®бв®п­Ёп § ¤ зЁ (TSS) ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм
ELSE #NP(ᥫҐЄв®а TSS)
Џ…ђ…Љ‹ћ—…Ќ€…-‡Ђ„Ђ— (ЎҐ§ ў«®¦Ґ­­®бвЁ) ­  TSS
“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ ­ е®¤Ёвмбп ў Ја ­ЁжҐ Є®¤®ў®Ј® ᥣ¬Ґ­в 
ELSE #GP(0)

‘…ѓЊ…Ќ’-‘Ћ‘’ЋџЌ€џ-‡Ђ„Ђ—€:
DPL ¤«п TSS ¤®«¦Ґ­ Ўлвм >= CPL ELSE #GP(ᥫҐЄв®а TSS)
DPL ¤«п TSS ¤®«¦Ґ­ Ўлвм >= RPL ᥫҐЄв®а  TSS
ELSE #GP(ᥫҐЄв®а TSS)
Ѓ ©в AR ¤ҐбЄаЁЇв®а  ¤®«¦Ґ­ § ¤ ў вм ¤®бвгЇ­л© TSS (¬« ¤иЁҐ ЎЁвл
00001) ELSE #GP(ᥫҐЄв®а TSS)
‘ҐЈ¬Ґ­в б®бв®п­Ёп § ¤ зЁ (TSS) ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм
ELSE #NP(ᥫҐЄв®а TSS)
Џ…ђ…Љ‹ћ—…Ќ€…-‡Ђ„Ђ— (ЎҐ§ ў«®¦Ґ­­®бвЁ) ­  TSS
“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ ­ е®¤Ёвмбп ў Ја ­ЁжҐ Є®¤®ў®Ј® ᥣ¬Ґ­в 
ELSE #GP(0);

ЋЇЁб ­ЁҐ
--------

Љ®¬ ­¤  JMP ЇҐаҐ¤ Ґв гЇа ў«Ґ­ЁҐ ў ¤агЈго в®зЄг Ї®в®Є  Є®¬ ­¤, ­Ґ
§ ЇЁблў п Ё­д®а¬ жЁЁ ¤«п ўлЇ®«­Ґ­Ёп ў®§ўа в .

ЌЁ¦Ґ ®ЇЁб ­® ¤Ґ©бвўЁҐ ¤«п а §«Ёз­ле д®а¬ Є®¬ ­¤л.

Љ®¬ ­¤л ЇҐаҐе®¤  б вЁЇ®¬ ­ §­ зҐ­Ёп r/m16m, r/m32 Ё r/m32
ўлЇ®«­пов Ў«Ё¦­Ё© ЇҐаҐе®¤ Ё ­Ґ ў«ҐЄгв Ё§¬Ґ­Ґ­Ёп §­ зҐ­Ёп
ᥣ¬Ґ­в­®Ј® ॣЁбва .

”®а¬л Є®¬ ­¤л ЇҐаҐе®¤  JMP rel16 Ё JMP rel32 бЄ« ¤лў ов ᬥ饭ЁҐ
б  ¤аҐб®¬ Є®¬ ­¤л, б«Ґ¤го饩 §  JMP, зв®Ўл ®ЇаҐ¤Ґ«Ёвм ­ §­ зҐ­ЁҐ
Є®¬ ­¤л. ”®а¬  б rel16 ЁбЇ®«м§гҐвбп, Є®Ј¤   ваЁЎгв а §¬Ґа 
®ЇҐа ­¤  Є®¬ ­¤л а ўҐ­ 16 ЎЁв ¬ (в®«мЄ®  ваЁЎгв а §¬Ґа  ᥣ¬Ґ­в 
16); д®а¬  б rel32 ЁбЇ®«м§гҐвбп, Є®Ј¤   ваЁЎгв а §¬Ґа  ®ЇҐа ­¤ 
Є®¬ ­¤л а ўҐ­ 32 ЎЁв ¬ (в®«мЄ®  ваЁЎгв а §¬Ґа  ᥣ¬Ґ­в  32).
ђҐ§г«мв в б®еа ­пҐвбп ў 32-а §ап¤­®¬ ॣЁбвॠEIP. ‚ б«гз Ґ
rel16 бв аиЁҐ 16 ЎЁв®ў ॣЁбва  EIP ®зЁй овбп, Ё в ЄЁ¬ ®Ўа §®¬,
Ї®«гз Ґвбп ᬥ饭ЁҐ, а §¬Ґа Є®в®а®Ј® ­Ґ ЇаҐўли Ґв 16 ЎЁв®ў.

”®а¬л JMP r/m16 Ё JMP r/m32 § ¤ ов ॣЁбва Ё«Ё  ¤аҐб Ї ¬пвЁ, Ё§
Є®в®а®Ј® ўлЎЁа Ґвбп  Ўб®«ов­®Ґ ᬥ饭ЁҐ ў Їа®жҐ¤гаҐ. ‚лЎа ­­®Ґ
Ё§ r/m ᬥ饭ЁҐ а ў­® 32 ЎЁв ¬ ¤«п  ваЁЎгв  а §¬Ґа  ®ЇҐа ­¤ ,
а ў­®Ј® 32 ЎЁв ¬ (r/m32), Ё«Ё 16 ЎЁв ¬ ¤«п  ваЁЎгв  а §¬Ґа 
®ЇҐа ­¤ , а ў­®Ј® 16 ЎЁв ¬ (r/m16).

”®а¬л Є®¬ ­¤л JMP ptr16:16 Ё ptr16:32 ЁбЇ®«м§гов зҐвлаҐеЁ«Ё
иҐбвЁ-Ў ©в®ўлҐ ®ЇҐа ­¤л ў Є зҐб⢥ ¤«Ё­­ле гЄ § вҐ«Ґ© ­ 
­ §­ зҐ­ЁҐ. ”®а¬л JMP m16:16 Ё m16:32 ўлЎЁа ов ¤ «м­Ё© гЄ § вҐ«м
Ё§ § ¤ ­­®Ј®  ¤аҐб  Ї ¬пвЁ (Є®бўҐ­­®Ґ ®Ўа йҐ­ЁҐ). ‚ ०Ё¬Ґ
ॠ«м­ле  ¤аҐб®ў Ё«Ё ўЁавг «м­®¬ ०Ё¬Ґ 8086 ¤«Ё­­л© гЄ § вҐ«м
®ЎҐбЇҐзЁў Ґв 16 ЎЁв®ў ¤«п ॣЁбва  CS Ё 16 Ё«Ё 32 ЎЁв  ¤«п
ॣЁбва  EIP (ў § ўЁбЁ¬®бвЁ ®в  ваЁЎгв  а §¬Ґа  ®ЇҐа ­¤ ). ‚
§ йЁйҐ­­®¬ ०Ё¬Ґ ®ЎҐ д®а¬л б ¤«Ё­­л¬Ё гЄ § вҐ«п¬Ё Їа®ўҐапов
Ў ©в Їа ў ¤®бвгЇ  (AR) ў ¤ҐбЄаЁЇв®аҐ, Ё­¤ҐЄбЁа㥬®¬ ᥫҐЄв®а­®©
з бвмо ¤«Ё­­®Ј® гЄ § вҐ«п. ‚ § ўЁбЁ¬®бвЁ ®в §­ зҐ­Ёп Ў ©в  AR
ЇҐаҐе®¤ Ўг¤Ґв ®бгйҐбвў«пвм ®¤Ё­ Ё§ б«Ґ¤гойЁе вЁЇ®ў ЇҐаҐ¤ зЁ
гЇа ў«Ґ­Ёп:

- ЏҐаҐе®¤ Є Є®¤®ў®¬г ᥣ¬Ґ­вг ­  ⮬ ¦Ґ га®ў­Ґ
ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ.

- ЏҐаҐЄ«о祭ЁҐ § ¤ зЁ.

Ѓ®«ҐҐ Ї®¤а®Ў­ п Ё­д®а¬ жЁп ® ЇҐаҐ¤ зҐ гЇа ў«Ґ­Ёп ў § йЁйҐ­­®¬
०Ё¬Ґ ­ е®¤Ёвбп ў Ј« ў е 6 Ё 7.


€§¬Ґ­пҐ¬лҐ д« ЈЁ
----------------

ЏаЁ ЇҐаҐЄ«о祭ЁЁ § ¤ зЁ Ё§¬Ґ­повбп ўбҐ д« ЈЁ; Ґб«Ё ¦Ґ
ЇҐаҐЄ«о祭ЁҐ § ¤ зЁ ­Ґ Їа®Ёб室Ёв, в® д« ЈЁ ­Ґ Ё§¬Ґ­повбп.

€бЄ«о祭Ёп § йЁйҐ­­®Ј® ०Ё¬ 
----------------------------------

„«п ¤ «м­Ёе ЇҐаҐе®¤®ў: #GP, #NP, #SS Ё #TS, Є Є гЄ § ­® ўлиҐ.

„«п Ў«Ё¦­Ёе Їап¬ле ЇҐаҐе®¤®ў: #GP(0), Ґб«Ё Їа®жҐ¤га  ­ е®¤Ёвбп
§  ЇаҐ¤Ґ« ¬Ё Ја ­Ёжл Є®¤®ў®Ј® ᥣ¬Ґ­в ; #AC ¤«п ­Ґўла ў­Ґ­­®©
ббл«ЄЁ Є Ї ¬пвЁ ЇаЁ ⥪г饬 га®ў­Ґ ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ, а ў­®¬
3.

„«п Ў«Ё¦­Ёе Є®бўҐ­­ле ЇҐаҐе®¤®ў: #GP(0) ў б«гз Ґ ­Ґ¤®ЇгбвЁ¬®Ј®
ЁбЇ®«­ЁвҐ«м­®Ј®  ¤аҐб  ®ЇҐа ­¤  Ї ¬пвЁ ў ᥣ¬Ґ­в е CS, DS, ES,
FS Ё«Ё GS; #SS(0) ў б«гз Ґ ­Ґ¤®ЇгбвЁ¬®Ј®  ¤аҐб  ў ᥣ¬Ґ­вҐ SS; #
GP, Ґб«Ё Ї®«г祭­®Ґ Є®бўҐ­­®Ґ ᬥ饭ЁҐ «Ґ¦Ёв §  Ја ­Ёж ¬Ё
Є®¤®ў®Ј® ᥣ¬Ґ­в ; #PF(Є®¤ бЎ®п) ў б«гз Ґ бва ­Ёз­®Ј® бЎ®п; #AC
¤«п ­Ґўла ў­Ґ­­®© ббл«ЄЁ Є Ї ¬пвЁ ЇаЁ ⥪г饬 га®ў­Ґ
ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ, а ў­®¬ 3.

€бЄ«о祭Ёп ०Ё¬  ॠ«м­ле  ¤аҐб®ў
---------------------------------------

ЏаҐалў ­ЁҐ 13, Ґб«Ё Є Є п-«ЁЎ® з бвм ®ЇҐа ­¤  «Ґ¦Ёв ў­Ґ
Їа®бва ­бвў  ЁбЇ®«­ЁвҐ«м­ле  ¤аҐб®ў ®в 0 ¤® 0FFFFH.

€бЄ«о祭Ёп ўЁавг «м­®Ј® ०Ё¬  8086
----------------------------------------

’Ґ ¦Ґ ЁбЄ«о祭Ёп, зв® Ё ¤«п ०Ё¬  ॠ«м­ле  ¤аҐб®ў: #PF (Є®¤
бЎ®п) ¤«п бва ­Ёз­ле бЎ®Ґў; #AC ¤«п ­Ґўла ў­Ґ­­®© ббл«ЄЁ Є
Ї ¬пвЁ ЇаЁ ⥪г饬 га®ў­Ґ ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ, а ў­®¬ 3.

ЏаЁ¬Ґз ­Ёп
----------

‚ᥠЄ®¬ ­¤л ўҐвў«Ґ­Ёп ЇаҐ®Ўа §говбп ¤«п ўлЎ®аЄЁ ў 16-Ў ©в®ўлҐ
Є®¤л, ­Ґ§ ўЁбЁ¬® ®в  ¤аҐб  ЇҐаҐе®¤  Ё«Ё ў®§¬®¦­®бвЁ ЄҐиЁа®ў ­Ёп.

-----------------------------------------------------------------


LAHF - ‡ Јаг§Є  д« Ј®ў ў ॣЁбва AH

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|9F LAHF 3 ‡ Јаг§Є : AH = д« ЈЁ |
| SF ZF xx AF xx PF xx CF |
-----------------------------------------------------------------

ђ Ў®в  Є®¬ ­¤л
--------------

AH <- SF:ZF:xx:AF:xx:PF:xx:CF;

ЋЇЁб ­ЁҐ
--------

Љ®¬ ­¤  LAHF ЇҐаҐбл« Ґв ¬« ¤иЁ© Ў ©в б«®ў  д« Ј®ў ў ॣЁбва AH.
ЃЁвл, ®в MSB ¤® LSB, нв® ЎЁвл §­ Є , ­г«п, ­Ґ®ЇаҐ¤Ґ«Ґ­­®бвм,
ўбЇ®¬®Ј вҐ«м­л©, ­Ґ®ЇаҐ¤Ґ«Ґ­­®бвм, Є®­ва®«п зҐв­®бвЁ,
­Ґ®ЇаҐ¤Ґ«Ґ­­®бвм Ё ЇҐаҐ­®б .

€§¬Ґ­пҐ¬лҐ д« ЈЁ
----------------

Ћвбгвбвўгов

€бЄ«о祭Ёп § йЁйҐ­­®Ј® ०Ё¬ 
----------------------------------

Ћвбгвбвўгов

€бЄ«о祭Ёп ०Ё¬  ॠ«м­ле  ¤аҐб®ў
---------------------------------------

Ћвбгвбвўгов

€бЄ«о祭Ёп ўЁавг «м­®Ј® ०Ё¬  8086
----------------------------------------

Ћвбгвбвўгов
-----------------------------------------------------------------

LAR - ‡ Јаг§Є  Ў ©в  Їа ў ¤®бвгЇ 

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|0F 02 /r LAR r16,r/m16 11/11 r16 <- r/m16 ¬ бЄЁагҐвбп FF00|
|0F 02 /r LAR r32,r/m32 11/11 r32 <- r/m32 ¬ бЄЁагҐвбп |
| 00FxFF00 |
-----------------------------------------------------------------


ЋЇЁб ­ЁҐ
--------

Љ®¬ ­¤  LAR б®еа ­пҐв ®в¬ҐзҐ­­го д®а¬г ўв®а®Ј® ¤ў®©­®Ј® б«®ў 
¤ҐбЄаЁЇв®а  ў Є зҐб⢥ Ёб室­®Ј® ᥫҐЄв®а , Ґб«Ё ᥫҐЄв®а ўЁ¤Ё¬
­  ⥪г饬 га®ў­Ґ ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ (¬®¤ЁдЁжЁа®ў ­­®¬ RPL
ᥫҐЄв®а ) Ё ᮤҐа¦Ёв ¤®ЇгбвЁ¬л© вЁЇ ¤ҐбЄаЁЇв®а  ў Ја ­Ёж е
¤ҐбЄаЁЇв®а . ђҐЈЁбва ­ §­ зҐ­Ёп § Јаг¦ Ґвбп бв аиЁ¬ ¤ў®©­л¬
б«®ў®¬ ¤ҐбЄаЁЇв®а , ¬ бЄЁа㥬®Ј® §­ зҐ­ЁҐ¬ 00FxFF00, Ё
гбв ­ ў«Ёў Ґвбп д« Ј ZF. x гЄ §лў Ґв ­  в®, зв® зҐвлॠЎЁв ,
ᮮ⢥вбвўгойЁҐ бв аиЁ¬ зҐвл६ ЎЁв ¬ Ја ­Ёжл, ў §­ зҐ­ЁЁ,
§ Јаг¦ Ґ¬®¬ Є®¬ ­¤®© LAR, ­Ґ®ЇаҐ¤Ґ«Ґ­л. …б«Ё ᥫҐЄв®а ­ҐўЁ¤Ё¬
Ё«Ё Ё¬ҐҐв ­ҐўҐа­л© вЁЇ, в® д« Ј ZF ®зЁй Ґвбп.

…б«Ё § ¤ ­ 32-а §ап¤­л© а §¬Ґа ®ЇҐа ­¤ , в® ўбҐ 32-а §ап¤­®Ґ
§­ зҐ­ЁҐ 楫ЁЄ®¬ § Јаг¦ Ґвбп ў 32-а §ап¤­л© аҐЈЁбва ­ §­ зҐ­Ёп.
…б«Ё § ¤ ­ 16-а §ап¤­л© а §¬Ґа ®ЇҐа ­¤ , в® ¬« ¤иЁҐ 16 ЎЁв®ў
нв®Ј® §­ зҐ­Ёп § Јаг¦ овбп ў 16-а §ап¤­л© аҐЈЁбва ­ §­ зҐ­Ёп.

„®ЇгбвЁ¬л¬Ё ¤«п Є®¬ ­¤л LAR пў«повбп ўбҐ ¤ҐбЄаЁЇв®ал Є®¤®ўле
ᥣ¬Ґ­в®ў Ё ᥣ¬Ґ­в®ў ¤ ­­ле.

„®ЇгбвЁ¬лҐ вЁЇл ¤ҐбЄаЁЇв®а®ў бЇҐжЁ «м­ле ᥣ¬Ґ­в®ў Ё и«о§®ў ¤«п
Є®¬ ­¤л LAR ЇаЁў®¤пвбп ў б«Ґ¤го饩 в Ў«ЁжҐ:

-----------------------------------------------------------------
’ЁЇ €¬п „®ЇгбвЁ¬®/­Ґ¤®ЇгбвЁ¬®
-----------------------------------------------------------------
0 ЌҐ¤®ЇгбвЁ¬® ЌҐ¤®ЇгбвЁ¬®
1 „®бвгЇ­л© TSS 80286 „®ЇгбвЁ¬®
2 LDT „®ЇгбвЁ¬®
3 ‡ ­пвл© TSS 80286 „®ЇгбвЁ¬®
4 «о§ ўл§®ў  80286 „®ЇгбвЁ¬®
5 «о§ § ¤ зЁ 80286/i486 „®ЇгбвЁ¬®
6 «о§ «®ўгиЄЁ 80286 „®ЇгбвЁ¬®
7 и«о§ ЇаҐалў ­Ёп 80286 „®ЇгбвЁ¬®
8 ЌҐ¤®ЇгбвЁ¬® ЌҐ¤®ЇгбвЁ¬®
9 „®бвгЇ­л© TSS i486 „®ЇгбвЁ¬®
A ЌҐ¤®ЇгбвЁ¬® ЌҐ¤®ЇгбвЁ¬®
B ‡ ­пвл© TSS i486 „®ЇгбвЁ¬®
C «о§ ўл§®ў  i486 „®ЇгбвЁ¬®
D ЌҐ¤®ЇгбвЁ¬® ЌҐ¤®ЇгбвЁ¬®
E «о§ «®ўгиЄЁ i486 „®ЇгбвЁ¬®
F и«о§ ЇаҐалў ­Ёп i486 „®ЇгбвЁ¬®
-----------------------------------------------------------------


€§¬Ґ­пҐ¬лҐ д« ЈЁ
----------------

”« Ј ZF гбв ­®ў«Ґ­, Ґб«Ё в®«мЄ® ᥫҐЄв®а ­Ґ пў«пҐвбп ­ҐўЁ¤Ё¬л¬
Ё«Ё ­Ґ¤®ЇгбвЁ¬®Ј® вЁЇ , Є®Ј¤  д« Ј ZF ®зЁй Ґвбп.

€бЄ«о祭Ёп § йЁйҐ­­®Ј® ०Ё¬ 
----------------------------------

#GP(0) ў б«гз Ґ ­Ґ¤®ЇгбвЁ¬®Ј® ЁбЇ®«­ЁвҐ«м­®Ј®  ¤аҐб  ®ЇҐа ­¤ 
Ї ¬пвЁ ў ᥣ¬Ґ­в е CS, DS, ES, FS Ё«Ё GS; #SS(0) ў б«гз Ґ
­Ґ¤®ЇгбвЁ¬®Ј®  ¤аҐб  ў ᥣ¬Ґ­вҐ SS; #PF(Є®¤ бЎ®п) ў б«гз Ґ
бва ­Ёз­®Ј® бЎ®п; #AC ¤«п ­Ґўла ў­Ґ­­®© ббл«ЄЁ Є Ї ¬пвЁ ЇаЁ
⥪г饬 га®ў­Ґ ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ, а ў­®¬ 3.

€бЄ«о祭Ёп ०Ё¬  ॠ«м­ле  ¤аҐб®ў
---------------------------------------

ЏаҐалў ­ЁҐ 6; Є®¬ ­¤  LAR ў ०Ё¬Ґ ॠ«м­ле  ¤аҐб®ў ­Ґ
а бЇ®§­ Ґвбп.

€бЄ«о祭Ёп ўЁавг «м­®Ј® ०Ё¬  8086
----------------------------------------

’Ґ ¦Ґ ЁбЄ«о祭Ёп, зв® Ё ў ०Ё¬Ґ ॠ«м­ле  ¤аҐб®ў.

-----------------------------------------------------------------


Соседние файлы в папке I486