Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессор 486 / I486 / CH26-08
.TXTINVD - Ђг«Ёа®ў ЁҐ ЄҐи
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ¤ —Ёб«® ЋЇЁб ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|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