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

FXTRACT - ўл¤Ґ«Ґ­ЁҐ нЄбЇ®­Ґ­вл Ё ¬ ­вЁббл

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® Џ а «- ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле «Ґ«м­®Ґ |
| жЁЄ«®ў ўлЇ®«- |
| ­Ґ­ЁҐ |
|D9 F4 FXTRACT 19(16-20) 4(2-4) ђ §¤Ґ«Ґ­ЁҐ ST ­  нЄбЇ®­Ґ-|
| ­вг Ё ¬ ­вЁббг: ST § ¬Ґ- |
| ­пҐвбп нЄбЇ®­Ґ­в®©, ў |
| ¬ ­вЁбб  Ї®¬Ґй Ґвбп ў |
| б⥪ FPU |
-----------------------------------------------------------------


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

ўаҐ¬ <- ¬ ­вЁбб  ST;
ST <- нЄбЇ®­Ґ­в  ST;
„ҐЄаҐ¬Ґ­в гЄ § вҐ«п ўҐаиЁ­л б⥪  FPU;
ST <- ўаҐ¬;

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

FXTRACT а §¤Ґ«пҐв §­ зҐ­ЁҐ ў ST ­  нЄбЇ®­Ґ­вг Ё ¬ ­вЁббг.
ќЄбЇ®­Ґ­в  § ¬Ґ­пҐв Ёб室­л© ®ЇҐа ­¤ ­  б⥪Ґ, Ё § вҐ¬ ў б⥪
Ї®¬Ґй Ґвбп ¬ ­вЁбб . Џ®б«Ґ ўлЇ®«­Ґ­Ёп Є®¬ ­¤л FXTRACT ST (­®ў п
ўҐаиЁ­  б⥪ ) ᮤҐа¦Ёв §­ зҐ­ЁҐ Ёб室­®© ¬ ­вЁббл, ўла ¦Ґ­­®Ґ
¤Ґ©б⢨⥫м­л¬ зЁб«®¬: ҐЈ® §­ Є в®в ¦Ґ, зв® Ё §­ Є ®ЇҐа ­¤ ,
нЄбЇ®­Ґ­в  а ў­  ЁбвЁ­­®¬г ­г«о (16.383 Ё«Ё 3FFFH ᮠᬥ饭ЁҐ¬),
  ¬ ­вЁбб  Ё¤Ґ­вЁз­  ¬ ­вЁбᥠЁб室­®Ј® ®ЇҐа ­¤ . ST(1) ᮤҐа¦Ёв
§­ зҐ­ЁҐ ЁбвЁ­­®© (­Ґб¬ҐйҐ­­®©) нЄбЇ®­Ґ­вл Ёб室­®Ј® ®ЇҐа ­¤ ,
ўла ¤Ґ­­®Ґ ¤Ґ©бвўЁҐ«м­л¬ зЁб«®¬.

„«п в®Ј®, зв®Ўл Їа®Ё««обваЁа®ў вм а Ў®вг Є®¬ ­¤л FXTRACT,
ЇаҐ¤Ї®«®¦Ё¬, зв® ST ᮤҐа¦Ёв зЁб«®, ЁбвЁ­­ п нЄбЇ®­Ґ­в  Є®в®а®Ј®
а ў­  +4 (в.Ґ. ҐЈ® Ї®«Ґ нЄбЇ®­Ґ­вл ᮤҐа¦Ёв 4003H). Џ®б«Ґ
ўлЇ®«­Ґ­Ёп FXTRACT ST(1) Ўг¤Ґв ᮤҐа¦ вм ¤Ґ©б⢨⥫쭮Ґ зЁб«®
+4.0; ҐЈ® §­ Є Ўг¤Ґв Ї®«®¦ЁвҐ«м­л¬, Ї®«Ґ нЄбЇ®­Ґ­вл Ўг¤Ґв
ᮤҐа¦ вм 4001H (ЁбвЁ­­®Ґ +2),   Ї®«Ґ ¬ ­вЁббл Ўг¤Ґв ᮤҐа¦ вм 1
00..00‚. „агЈЁ¬Ё б«®ў ¬Ё, §­ зҐ­ЁҐ ў ST(1) Ўг¤Ґв а ў­® 1.0 x 2*
*2 = 4. …б«Ё ST ᮤҐа¦Ёв ®ЇҐа ­¤, ЁбвЁ­­ п Є®¬Ї®­Ґ­в  Є®в®а®Ј®
а ў­  -7 (в.Ґ. Ї®«Ґ нЄбЇ®­Ґ­вл ҐЈ® ᮤҐа¦Ёв §­ зҐ­ЁҐ 3FF8H), в®
FXTRACT ў®§ўа вЁв "нЄбЇ®­Ґ­вг" а ў­го -7.0l Ї®б«Ґ ўлЇ®«­Ґ­Ёп
Є®¬ ­¤л Ї®«п ST(1) §­ Є  Ё нЄбЇ®­Ґ­вл Ўг¤гв ᮤҐа¦ вм C001H
(®ваЁж вҐ«м­л© §­ Є, ЁбвЁ­­ п нЄбЇ®­Ґ­в  2),   ¬ ­вЁбб  Ўг¤Ґв
а ў­  1 1100..00‚. „агЈЁ¬Ё б«®ў ¬Ё, §­ зҐ­ЁҐ ў ST(1) Ўг¤Ґв а ў­®
-1.75 x 2**2 = -7.0. ‚ ®Ў®Ёе б«гз пе Ї®б«Ґ FXTRACT Ї®«п ST §­ Є 
Ё ¬ ­вЁббл Ўг¤гв а ў­л ᮮ⢥вбвўгойЁ¬ Ї®«п¬ Ёб室­®Ј® ®ЇҐа ­¤ ,
  Ї®«Ґ нЄбЇ®­Ґ­вл Ўг¤Ґв ᮤҐа¦ вм 3FFFH (ЁбвЁ­­л© 0).

€§¬Ґ­пҐ¬лҐ д« ЈЁ ¬®¤г«п ®ЇҐа жЁ© б Ї« ў о饩 в®зЄ®©
---------------------------------------------------

‘1, Є Є ®ЇЁб ­® ў ’ Ў«ЁжҐ 15-1; C0, C2, C3 ­Ґ ®ЇаҐ¤Ґ«Ґ­л.

€бЄ«о祭Ёп зЁб«®ўле ®ЇҐа жЁ©
---------------------------------

Z, D, I, IS

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

#NM ЇаЁ гбв ­®ў«Ґ­­®¬ EM Ё«Ё TS ў CR0.

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

ЏаҐалў ­ЁҐ 7 ЇаЁ гбв ­®ў«Ґ­­®¬ EM Ё«Ё TS ў CR0.

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

#NM ЇаЁ гбв ­®ў«Ґ­­®¬ EM Ё«Ё TS ў CR0.


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

FXTRACT (ўл¤Ґ«Ёвм нЄбЇ®­Ґ­вг Ё ¬ ­вЁббг) ўлЇ®«­пҐв ­ ¤¬­®¦Ґбвў®
४®¬Ґ­¤гҐ¬®© IEEE дг­ЄжЁЁ logb(x).

…б«Ё Ёб室­л© ®ЇҐа ­¤ а ўҐ­ ­г«о, в® FXTRACT ®бв ў«пҐв ў ST(1)
¬Ё­гб ЎҐбЄ®­Ґз­®бвм (нЄбЇ®­Ґ­в ),   ST Ўг¤Ґв ЇаЁбў®Ґ­® ­г«Ґў®Ґ
§­ зҐ­ЁҐ б® §­ Є®¬, а ў­л¬ §­ Єг Ёб室­®Ј® ®ЇҐа ­¤ . ‚ н⮬
б«гз Ґ в Є¦Ґ ў®§¬®¦­® ЈҐ­ҐаЁа®ў ­ЁҐ ЁбЄ«о祭Ёп ¤Ґ«Ґ­Ёп ­  ­®«м.

ST(7) ¤®«¦Ґ­ Ўлвм Їгбвл¬, зв®Ўл Ё§ЎҐ¦ вм ЁбЄ«о祭Ёп ­ҐўҐа­®©
®ЇҐа жЁЁ.

Љ®¬ ­¤  ST(7) Ї®«Ґ§­  ¤«п ўлЇ®«­Ґ­Ёп ®ЇҐа жЁ© ¬ бив ЎЁа®ў ­Ёп
б⥯Ґ­Ё Ё ¤Ё Ї §®­ . „«п ўлЇ®«­Ґ­Ёп ®ЎйҐ© ®ЇҐа жЁЁ ў®§ўҐ¤Ґ­Ёп ў
б⥯Ґ­м ЁбЇ®«м§говбп ®ЎҐ Є®¬ ­¤л, FXTRACT Ё Є®¬ ­¤ 
нЄбЇ®­Ґ­жЁа®ў ­Ёп Ї® ®б­®ў ­Ёо 2 F2XM1. „«п ЇаҐ®Ўа §®ў ­Ёп зЁбҐ«
ў а биЁаҐ­­®¬ ¤Ґ©б⢨⥫쭮¬ д®а¬ вҐ Є ¤ҐбпвЁз­®¬г ЇаҐ¤бв ў«Ґ­Ёо
(­ ЇаЁ¬Ґа, ¤«п ЇҐз вЁ Ё«Ё ўлў®¤  ­  ¤ЁбЇ«Ґ©) вॡгҐвбп ­Ґ в®«мЄ®
Є®¬ ­¤  FBSTP, ­® Ё Є®¬ ­¤  FXTRACT, Ї®§ў®«пой п
¬ бив ЎЁа®ў ­ЁҐ, ­Ґ ўҐ¤г饥 Є ЇҐаҐЇ®«­Ґ­Ёо ¤Ё Ї §®­ 
а биЁаҐ­­®Ј® д®а¬ в . FXTRACT в Є¦Ґ ¬®¦Ґв Ўлвм Ї®«Ґ§­  ЇаЁ
®в« ¤ЄҐ, Ї®бЄ®«мЄг Ї®§ў®«пҐв ®в¤Ґ«м­® а бб¬ ваЁў вм нЄбЇ®­Ґ­вг Ё
¬ ­вЁббг ¤Ґ©б⢨⥫쭮Ј® зЁб« .

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

FYL2X - ‚лзЁб«Ґ­ЁҐ y x log x
2
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® Џ а «- ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле «Ґ«м­®Ґ |
| жЁЄ«®ў ўлЇ®«- |
| ­Ґ­ЁҐ |
|D9 F1 FYL2X 311(196-329) 13 ‡ ¬Ґ­  ST(1) ­  |
| ST(1) x log ST Ё Ё§ў«Ґ- |
| 2 |
| 祭ЁҐ Ё§ б⥪  ST |
-----------------------------------------------------------------

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

ST(1) <- ST(1) x log ST;
2
Ё§ў«ҐзҐ­ЁҐ Ё§ б⥪  ST;

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

Љ®¬ ­¤  FYL2X ўлзЁб«пҐв «®Ј аЁд¬ ST Ї® ®б­®ў ­Ёо 2, г¬­®¦ Ґв
«®Ј аЁд¬ ­  ST(1) Ё ў®§ўа й Ґв Ї®«г祭­®Ґ §­ зҐ­ЁҐ ў ST(1).
ЋЇҐа ­¤ ў ST ­Ґ ¬®¦Ґв Ўлвм ®ваЁж вҐ«м­л¬.


€§¬Ґ­пҐ¬лҐ д« ЈЁ ¬®¤г«п ®ЇҐа жЁ© б Ї« ў о饩 в®зЄ®©
---------------------------------------------------

C1, Є Є ®ЇЁб ­® ў ’ Ў«ЁжҐ 15-1; C0, C2, C3 ­Ґ ®ЇаҐ¤Ґ«Ґ­л.

€бЄ«о祭Ёп зЁб«®ўле ®ЇҐа жЁ©
---------------------------------

P, U, O, Z, D, I, IS

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

#NM ЇаЁ гбв ­®ў«Ґ­­®¬ EM Ё«Ё TS ў CR0.

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

ЏаҐалў ­ЁҐ 7 ЇаЁ гбв ­®ў«Ґ­­®¬ EM Ё«Ё TS ў CR0.

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

#NM ЇаЁ гбв ­®ў«Ґ­­®¬ EM Ё«Ё TS ў CR0.


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

…б«Ё ®ЇҐа ­¤ ў ST ®ваЁж вҐ«Ґ­, в® ЈҐ­ҐаЁагҐвбп ЁбЄ«о祭ЁҐ
­ҐўҐа­®© ®ЇҐа жЁЁ.

Љ®¬ ­¤  FYL2X ЇаҐ¤­ §­ зҐ­ , б®ў¬Ґбв­® б ўбв஥­­л¬ г¬­®¦Ґ­ЁҐ¬,
¤«п ®ЇвЁ¬Ё§ жЁЁ ўлзЁб«Ґ­Ёп «®Ј аЁд¬®ў б Їа®Ё§ў®«м­л¬
Ї®«®¦ЁвҐ«м­л¬ ®б­®ў ­ЁҐ¬:

1
log x = (log b) x log x
b 2 2

Љ®¬ ­¤л FLDL2T Ё FLDL2E § Јаг¦ ов Є®­бв ­вл log 10 Ё log e,
2 2
ᮮ⢥вб⢥­­®.

–Ґ­ва «м­л© Їа®жҐбб®а i486 ЇҐаЁ®¤ЁзҐбЄЁ ў® ўаҐ¬п ўлЇ®«­Ґ­Ёп
¤ ­­®© Є®¬ ­¤л Їа®ўҐапҐв ЇаҐалў ­Ёп. „«п ®Ўб«г¦Ёў ­Ёп ЇаҐалў ­Ёп
ўлЇ®«­Ґ­ЁҐ ¤ ­­®© Є®¬ ­¤л ®в¬Ґ­пҐвбп (abort).

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

FYL2XP1 - ‚лзЁб«Ґ­ЁҐ y x log (x+1)
2

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® Џ а «- ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле «Ґ«м­®Ґ |
| жЁЄ«®ў ўлЇ®«- |
| ­Ґ­ЁҐ |
|D9 F9 FYL2XP1 313(171-326) 13 ‡ ¬Ґ­  ST(1) ­  |
| ST(1) x log (ST+1.0) Ё |
| 2 |
| Ё§ў«ҐзҐ­ЁҐ Ё§ б⥪  ST |
-----------------------------------------------------------------

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

ST(1) <- ST(1) x log (ST+1.0);
2
Ё§ў«ҐзҐ­ЁҐ Ё§ б⥪  ST;

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

Љ®¬ ­¤  FYL2X ўлзЁб«пҐв «®Ј аЁд¬ (ST+1.0) Ї® ®б­®ў ­Ёо 2,
г¬­®¦ Ґв «®Ј аЁд¬ ­  ST(1) Ё ў®§ўа й Ґв Ї®«г祭­®Ґ §­ зҐ­ЁҐ ў ST
(1). ЋЇҐа ­¤ ў ST ¤®«¦Ґ­ «Ґ¦ вм ў ¤Ё Ї §®­Ґ:

-(1-(Єў.Є®аҐ­м Ё§ 2/2)) <= ST <= Єў.Є®аҐ­Ё Ё§ 2 - 1


€§¬Ґ­пҐ¬лҐ д« ЈЁ ¬®¤г«п ®ЇҐа жЁ© б Ї« ў о饩 в®зЄ®©
---------------------------------------------------

C1, Є Є ®ЇЁб ­® ў ’ Ў«ЁжҐ 15-1; C0, C2, C3 ­Ґ ®ЇаҐ¤Ґ«Ґ­л.

€бЄ«о祭Ёп зЁб«®ўле ®ЇҐа жЁ©
---------------------------------

P, U, D, I, IS

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

#NM ЇаЁ гбв ­®ў«Ґ­­®¬ EM Ё«Ё TS ў CR0.

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

ЏаҐалў ­ЁҐ 7 ЇаЁ гбв ­®ў«Ґ­­®¬ EM Ё«Ё TS ў CR0.

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

#NM ЇаЁ гбв ­®ў«Ґ­­®¬ EM Ё«Ё TS ў CR0.


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

…б«Ё ®ЇҐа ­¤ ў ST «Ґ¦Ёв ў­Ґ ¤®ЇгбвЁ¬®Ј® ¤Ё Ї §®­ , ⮠१г«мв в
ўлЇ®«­Ґ­Ёп Є®¬ ­¤л FYL2XP1 ­Ґ®ЇаҐ¤Ґ«Ґ­.

Љ®¬ ­¤  FYL2Xp1 ®ЎҐбЇҐзЁў Ґв Ї®ўл襭­го в®з­®бвм ба ў­ЁвҐ«м­® б
FYL2X ЇаЁ ўлзЁб«Ґ­ЁЁ «®Ј аЁд¬®ў зЁбҐ«, ®зҐ­м Ў«Ё§ЄЁе Є 1. ЏаЁ
¬ «®¬ §­ зҐ­ЁЁ нЇбЁ«®­ Ў®«м襥 Є®«ЁзҐбвў® §­ з йЁе жЁда ¬®¦­®
Ї®«гзЁвм, ЇҐаҐ¤ ў нЇбЁ«®­ Є Є  аЈг¬Ґ­в Є®¬ ­¤л FYL2XP1, 祬
ЇҐаҐ¤ ў 1+нЇбЁ«®­ Є®¬ ­¤Ґ FYL2X.

–Ґ­ва «м­л© Їа®жҐбб®а i486 ЇҐаЁ®¤ЁзҐбЄЁ ў® ўаҐ¬п ўлЇ®«­Ґ­Ёп
¤ ­­®© Є®¬ ­¤л Їа®ўҐапҐв ЇаҐалў ­Ёп. „«п ®Ўб«г¦Ёў ­Ёп ЇаҐалў ­Ёп
ўлЇ®«­Ґ­ЁҐ ¤ ­­®© Є®¬ ­¤л ®в¬Ґ­пҐвбп (abort).

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

HLT - Ћбв ­®ў

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
| F4 HLT 4 Ћбв ­®ў |
-----------------------------------------------------------------

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

‚室 ў ०Ё¬ ®бв ­®ў .


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

Љ®¬ ­¤  HLT ®бв ­ ў«Ёў Ґв ўлЇ®«­Ґ­ЁҐ Є®¬ ­¤ Ё ЇҐаҐў®¤Ёв
Їа®жҐбб®а ў ०Ё¬ HLT. ‚лЇ®«­Ґ­ЁҐ Ўг¤Ґв Їа®¤®«¦Ґ­® Ї®б«Ґ
а §аҐиҐ­­®Ј® ЇаҐалў ­Ёп, ­Ґ¬ бЄЁа㥬®Ј® ЇаҐалў ­Ёп Ё«Ё бЎа®б .
…б«Ё ¤«п ў®§®Ў­®ў«Ґ­Ёп ўлЇ®«­Ґ­Ёп Ї®б«Ґ Є®¬ ­¤л HLT ЁбЇ®«м§гҐвбп
ЇаҐалў ­ЁҐ (ўЄ«оз п ­Ґ¬ бЄЁа㥬лҐ), в® б®еа ­Ґ­­®Ґ §­ зҐ­ЁҐ
CS:IP (Ё«Ё CS:EIP) Ўг¤Ґв гЄ §лў вм ­  Є®¬ ­¤г, б«Ґ¤гойго § 
Є®¬ ­¤®© HLT.

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

Ћвбгвбвўгов

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

Љ®¬ ­¤  HLT пў«пҐвбп ЇаЁўЁ«ҐЈЁа®ў ­­®© Є®¬ ­¤®©; #GP(0), Ґб«Ё
⥪гйЁ© га®ўҐ­м ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ ­Ґ а ўҐ­ 0.

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

Ћвбгвбвўгов

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

#GP(0); Є®¬ ­¤  HLT пў«пҐвбп ЇаЁўЁ«ҐЈЁа®ў ­­®© Є®¬ ­¤®©.

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


IDIV - „Ґ«Ґ­ЁҐ б® §­ Є®¬

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|F6 /7 IDIV r/m8 19/20 „Ґ«Ґ­ЁҐ б® §­ Є®¬ AX ­  Ў ©в r/m |
| (AL=з бв­®Ґ, AH=®бв в®Є) |
|F7 /7 IDIV AX,r/m16 27/28 „Ґ«Ґ­ЁҐ б® §­ Є®¬ DX:AX ­  б«®ў® |
| EA (AX=з бв­®Ґ, DX = ®бв в®Є) |
|F7 /7 DIV EAX,r/m32 43/44 „Ґ«Ґ­ЁҐ б® §­ Є®¬ EDX:EAX ­  |
| ¤ў®©­®Ґ б«®ў® r/m |
| (EAX=з бв­®Ґ,EDX = ®бв в®Є) |
-----------------------------------------------------------------

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

ўаҐ¬ <- ¤Ґ«Ё¬®Ґ / ¤Ґ«ЁвҐ«м;
IF ўаҐ¬ ­Ґ Ї®¬Ґй Ґвбп ў з бв­®¬
THEN ЏаҐалў ­ЁҐ 0;
ELSE
з бв­®Ґ <- ўаҐ¬;
®бв в®Є <- ¤Ґ«Ё¬®Ґ MOD (r/m);
FI;

‡ ¬Ґз ­ЁҐ: ¤Ґ«Ґ­ЁҐ б® §­ Є®¬. „Ґ«ЁвҐ«м § ¤ Ґвбп ў ®ЇҐа ­¤Ґ r/m.
„Ґ«Ё¬®Ґ, з бв­®Ґ Ё ®бв в®Є ЁбЇ®«м§гов ­Ґпў­® § ¤ ў Ґ¬лҐ
ॣЁбвал. ‘¬. в Ў«Ёжг ў Ї а Ја дҐ "ЋЇЁб ­ЁҐ".

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

Љ®¬ ­¤  DIV ўлЇ®«­пҐв ¤Ґ«Ґ­ЁҐ б® §­ Є®¬. „Ґ«Ё¬®Ґ, з бв­®Ґ Ё
®бв в®Є ­Ґпў­® а бЇаҐ¤Ґ«Ґ­л дЁЄбЁа®ў ­­л¬ ॣЁбва ¬. ’®«мЄ®
¤Ґ«ЁвҐ«м § ¤ Ґвбп Є Є пў­л© ®ЇҐа ­¤ r/m (ॣЁбва/Ї ¬пвм). ’ЁЇ
¤Ґ«ЁвҐ«п ®ЇаҐ¤Ґ«пҐв ЁбЇ®«м§гҐ¬лҐ ॣЁбвал б«Ґ¤гойЁ¬ ®Ўа §®¬:


-----------------------------------------------------------------
ђ §¬Ґа „Ґ«ЁвҐ«м — бв­®Ґ Ћбв в®Є „Ґ«Ё¬®Ґ
-----------------------------------------------------------------
Ў ©в r/m8 AL AH AX
б«®ў® r/m16 AX DX DX:AX
¤ў®©­®Ґ
б«®ў® r/m32 EAX EDX EDX:EAX
-----------------------------------------------------------------

…б«Ё Ї®«г祭­®Ґ з бв­®Ґ б«ЁиЄ®¬ ўҐ«ЁЄ® Ё ­Ґ ¬®¦Ґв Ї®¬ҐбвЁвмбп ў
®ЇҐа ­¤Ґ ­ §­ зҐ­Ёп, «ЁЎ® ЇаЁ ¤Ґ«Ґ­ЁЁ ­  0, ЈҐ­ҐаЁагҐвбп
ЇаҐалў ­ЁҐ 0. ЌҐжҐ«лҐ з бв­лҐ гᥪ овбп ¤® 0. Ћбв в®Є Ё¬ҐҐв в®в
¦Ґ §­ Є, зв® Ё ¤Ґ«Ё¬®Ґ,   ҐЈ®  Ўб®«ов­®Ґ §­ зҐ­ЁҐ ўбҐЈ¤  ¬Ґ­миҐ
 Ўб®«ов­®Ј® §­ зҐ­Ёп ¤Ґ«ЁвҐ«п.

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

”« ЈЁ OF, SF, ZF, AF, PF, CF ­Ґ ®ЇаҐ¤Ґ«Ґ­л.

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

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

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

ЏаҐалў ­ЁҐ 0, Ґб«Ё з бв­®Ґ б«ЁиЄ®¬ ўҐ«ЁЄ® ¤«п ­ §­ зҐ­­®Ј® ¤«п
­ҐЈ® ॣЁбва  (AL Ё«Ё AX), Ё«Ё Ґб«Ё ¤Ґ«ЁвҐ«м а ўҐ­ 0; ЏаҐалў ­ЁҐ
13, Ґб«Ё Є Є п-«ЁЎ® з бвм ®ЇҐа ­¤  «Ґ¦Ёв ў­Ґ Їа®бва ­бвў 
ЁбЇ®«­ЁвҐ«м­ле  ¤аҐб®ў ®в 0 ¤® 0FFFFH.

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

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

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


IMUL - “¬­®¦Ґ­ЁҐ б® §­ Є®¬

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|F6 /5 IMUL r/m8 13-18/13-18 AX <- AL * Ў ©в r/m |
|F7 /5 IMUL r/m16 13-26/13-26 DX:AX <- AX * б«®ў® r/m |
|F7 /5 IMUL r/m32 12-42/13-42 EDX:EAX <- EAX * ¤ў®©­®Ґ |
| б«®ў® r/m |
|0F AF /r IMUL r16, 13-26/13-26 ॣЁбва-б«®ў® <- ॣЁбва- |
| r/m16 б«®ў® * б«®ў® r/m |
|0F AF /r IMUL r32, 13-42/13-42 ॣЁбва-¤ў®©­®Ґ б«®ў® <- |
| r/m32 ॣЁбва-¤ў®©­®Ґ б«®ў® * |
| ¤ў®©­®Ґ б«®ў® r/m |
|6B /r ib IMUL r16, 13-26/13-26 ॣЁбва-б«®ў® <- r/m16 * |
| r/m16,imm8 а биЁаҐ­­л© §­ Є®¬ ­ҐЇ®б।-|
| б⢥­­л© Ў ©в |
|6B /r ib IMUL r32, 13-42/13-42 ॣЁбва-¤ў®©­®Ґ б«®ў® <- |
| r/m32,imm8 r/m32 * а биЁаҐ­­л© §­ Є®¬ |
| ­ҐЇ®б।б⢥­­л© Ў ©в |
|6B /r ib IMUL r16, 13-26 ॣЁбва-б«®ў® <- ॣЁбва- |
| imm8 б«®ў® * а биЁаҐ­­л© §­ Є®¬ |
| ­ҐЇ®б।б⢥­­л© Ў ©в |
|6B /r ib IMUL r32, 13-26 ॣЁбва-¤ў®©­®Ґ б«®ў® <- |
| imm8 ॣЁбва-¤ў®©­®Ґ б«®ў® * а б-|
| иЁаҐ­­л© §­ Є®¬ ­ҐЇ®ба.Ў ©в |
|69 /r iw IMUL r16, 13-26/13-26 ॣЁбва-б«®ў® <- r/m16 * |
| r/m16,imm16 ­ҐЇ®б।б⢥­­®Ґ б«®ў® |
|69 /r id IMUL r32, 13-42/13-42 ॣЁбва-¤ў®©­®Ґ б«®ў® <- |
| r/m32,imm32 r/m32 * ­ҐЇ®б।б⢥­­®Ґ |
| ¤ў®©­®Ґ б«®ў® |
|69 /r iw IMUL r16, 13-26/13-26 ॣЁбва-б«®ў® <- r/m16 * |
| imm16 ­ҐЇ®б।б⢥­­®Ґ б«®ў® |
|69 /r id IMUL r32, 13-42/13-42 ॣЁбва-¤ў®©­®Ґ б«®ў® <- |
| imm32 r/m32 * ­ҐЇ®б।б⢥­­®Ґ |
| ¤ў®©­®Ґ б«®ў® |
-----------------------------------------------------------------

ЏаЁ¬Ґз ­Ёп: Џа®жҐбб®а i486 ЁбЇ®«м§гҐв  «Ј®аЁв¬ г¬­®¦Ґ­Ёп вЁЇ 
"early-out". ” ЄвЁзҐбЄ®Ґ зЁб«® в Єв®ўле жЁЄ«®ў § ўЁбЁв ®в
Ї®§ЁжЁЁ ­ ЁЎ®«ҐҐ §­ з йҐЈ® ЎЁв  ў ®ЇвЁ¬Ё§Ёа㥬®¬ ¬­®¦ЁвҐ«Ґ.
ЋЇвЁ¬Ё§ жЁп ўлЇ®«­пҐвбп Є Є ¤«п Ї®«®¦ЁвҐ«м­ле, в Є Ё ¤«п
®ваЁж вҐ«м­ле §­ зҐ­Ё©. ‚б«Ґ¤бвўЁҐ ¤ ­­®Ј®  «Ј®аЁв¬  ¤ овбп
¬Ё­Ё¬ «м­лҐ Ё ¬ ЄбЁ¬ «м­лҐ Є®«ЁзҐбвў  в Єв®ўле жЁЄ«®ў. „«п
ўлзЁб«Ґ­Ёп д ЄвЁзҐбЄ®Ј® зЁб«  в Єв®ўле жЁЄ«®ў ЁбЇ®«м§гҐвбп
б«Ґ¤гой п д®а¬г« :

” ЄвЁзҐбЄ®Ґ зЁб«® в Єв®ўле жЁЄ«®ў = Ґб«Ё m <> 0 в®
max(­ Ё¬Ґ­м襥 楫®Ґ зЁб«®, Ў®«м襥 (log |m|)) + 6 жЁЄ«®ў.
2
” ЄвЁзҐбЄ®Ґ зЁб«® в Єв®ўле жЁЄ«®ў = Ґб«Ё m = 0 в® 9 жЁЄ«®ў.

(Ј¤Ґ m нв® ¬­®¦ЁвҐ«м)

…б«Ё ¬­®¦ЁвҐ«м Ґбвм ®ЇҐа ­¤ Ї ¬пвЁ, в® ЇаЁЎ ў«пҐвбп ваЁ жЁЄ« .


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

१г«мв в <- ¬­®¦Ё¬®Ґ * ¬­®¦ЁвҐ«м

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

Љ®¬ ­¤  IMUL ўлЇ®«­пҐв г¬­®¦Ґ­ЁҐ б® §­ Є®¬. ЌҐЄ®в®алҐ д®а¬л нв®©
Є®¬ ­¤л ЁбЇ®«м§гов ­Ґпў­лҐ ®ЇҐа ­¤л-ॣЁбвал. Љ®¬ЎЁ­ жЁЁ
®ЇҐа ­¤®ў ¤«п ўбҐе д®а¬ Є®¬ ­¤л Ї®Є § ­л ў Є®«®­ЄҐ "ЋЇЁб ­ЁҐ"
ўлиҐ.

Љ®¬ ­¤  IMUL ®зЁй Ґв д« ЈЁ OF Ё CF ў б«Ґ¤гойЁе гб«®ўЁпе:

-----------------------------------------------------------------
”®а¬  Є®¬ ­¤л | “б«®ўЁҐ ®зЁбвЄЁ д« Ј®ў CF Ё OF
-----------------------------------------------------------------
r/m8 AL = а биЁаҐ­ЁҐ §­ Є®¬ AL ¤® 16 ЎЁв®ў
r/m16 AX = а биЁаҐ­ЁҐ §­ Є®¬ AX ¤® 32 ЎЁв®ў
r/m32 EDX:EAX = а биЁаҐ­ЁҐ §­ Є®¬ EAX ¤® 16
ЎЁв®ў
r16,r/m16 ђҐ§г«мв в ў в®з­®бвЁ Ї®¬Ґй Ґвбп ў r16
r32,r/m32 ђҐ§г«мв в ў в®з­®бвЁ Ї®¬Ґй Ґвбп ў r32
r16,r/m16,imm16 ђҐ§г«мв в ў в®з­®бвЁ Ї®¬Ґй Ґвбп ў r16
r32,r/m32,imm32 ђҐ§г«мв в ў в®з­®бвЁ Ї®¬Ґй Ґвбп ў r32
-----------------------------------------------------------------

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

”« ЈЁ OF Ё CF ®ЇЁб ­л ўлиҐ ў а §¤Ґ«Ґ "®ЇЁб ­ЁҐ"; д« ЈЁ SF, ZF,
AF, PF ­Ґ ®ЇаҐ¤Ґ«Ґ­л.

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

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

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

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

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

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

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

ЏаЁ ЁбЇ®«м§®ў ­ЁЁ ­ҐЄ®в®але д®а¬  ЄЄг¬г«пв®а  (IMUL r/m8, IMUL r
/m16 Ё«Ё IMUL r/m32) १г«мв в г¬­®¦Ґ­Ёп ¤®бвгЇҐ­ ¤ ¦Ґ ЇаЁ
гбв ­®ў«Ґ­­®¬ д« ЈҐ ЇҐаҐЇ®«­Ґ­Ёп, Ї®бЄ®«мЄг а §¬Ґа १г«мв в  ў
¤ў  а §  ЇаҐўли Ґв а §¬Ґа ¬­®¦Ё¬®Ј® Ё ¬­®¦ЁвҐ«п. ќв® ¤®бв в®з­®
¤«п ®Ўа Ў®вЄЁ «оЎ®Ј® ў®§¬®¦­®Ј® १г«мв в .

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

IN - ‚ў®¤ Ё§ Ї®ав 

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|E4 ib IN AL,imm8 14,pm=8*/ ‚ў®¤ Ў ©в  Ё§ ­ҐЇ®б।б⢥­-|
| 28**,vm=27 ­® § ¤ ­­®Ј® Ї®ав  ў AL |
|E5 ib IN AX,imm8 14,pm=8*/ ‚ў®¤ б«®ў  Ё§ ­ҐЇ®б।б⢥­-|
| 28**,vm=27 ­® § ¤ ­­®Ј® Ї®ав  ў AX |
|E5 ib IN EAX,imm8 14,pm=8*/ ‚ў®¤ ¤ў®©­®Ј® б«®ў  Ё§ ­ҐЇ®-|
| 28**,vm=27 б।б⢥­­® § ¤ ­­®Ј® Ї®ав  |
| ў EAX |
|EC IN AL,DX 14,pm=8*/ ‚ў®¤ Ў ©в  Ё§ Ї®ав  DX ў AL |
| 28**,vm=27 |
|ED IN AX,DX 14,pm=8*/ ‚ў®¤ б«®ў  Ё§ Ї®а  DX ў AX |
| 28**,vm=27 |
|ED IN EAX,DX 14,pm=8*/ ‚ў®¤ ¤ў®©­®Ј® б«®ў  Ё§ Ї®ав |
| 28**,vm=27 DX ў EAX |
-----------------------------------------------------------------

ЏаЁ¬Ґз ­Ёп: * Ґб«Ё CPL <= IOPL
** Ґб«Ё CPL >= IOPL

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

IF (PE = 1) AND ((VM = 1) OR (CPL > IOPL))
THEN (* ‚Ёавг «м­л© ०Ё¬ 8086 Ё«Ё § йЁйҐ­­л© ०Ё¬ ЇаЁ CPL >
IOPL *)
IF NOT I-O-Permission(SRC, width(SRC))
THEN #GP(0);
FI;
FI;
DEST <- [SRC]; (* —⥭ЁҐ Ё§  ¤аҐб­®Ј® Їа®бва ­бвў  ўў®¤ /ўлў®¤  *)

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

Љ®¬ ­¤  IN ЇҐаҐбл« Ґв Ў ©в Ё«Ё б«®ў® ¤ ­­ле Ё§ § ¤ ­­®Ј® зЁб«®¬
ў® ўв®а®¬ ®ЇҐа ­¤Ґ Ї®ав  ў ॣЁбва (AL, AX Ё«Ё EAX), § ¤ ­­л©
ЇҐаўл¬ ®ЇҐа ­¤®¬. „®бвгЇ Є «оЎ®¬г Ї®авг ®в 0 ¤® 65535
ўлЇ®«­пҐвбп Їг⥬ Ї®¬ҐйҐ­Ёп ­®¬Ґа  Ї®ав  ў ॣЁбва DX Ё
ЁбЇ®«м§®ў ­Ёп Є®¬ ­¤л IN б ॣЁбв஬ DX ў Є зҐб⢥ ўв®а®Ј®
Ї а ¬Ґва . ќвЁ Є®¬ ­¤л ўў®¤ /ўлў®¤  ¬®Јгв Ўлвм ­ҐбЄ®«мЄ® Є®а®зҐ
ЇаЁ ЁбЇ®«м§®ў ­ЁЁ ўў®¤ /ўлў®¤  зҐаҐ§ 8-ЎЁв®ўл© Ї®ав ў Є®¬ ­¤Ґ.
‘в аиЁҐ ў®бҐ¬м ЎЁв®ў  ¤аҐб  Ї®ав  ЇаЁ ЁбЇ®«м§®ў ­ЁЁ ўў®¤ /ўлў®¤ 
зҐаҐ§ 8-ЎЁв®ўл© Ї®ав Ўг¤гв а ў­л 0.

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

Ћвбгвбвўгов

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

#GP(0), Ґб«Ё ⥪гйЁ© га®ўҐ­м ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ Ў®«миҐ (в.Ґ.
ЇаЁўЁ«ҐЈЁа®ў ­­®бвм ¬Ґ­миҐ) га®ў­п ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ
ўў®¤ /ўлў®¤  (IOPL) Ё«Ё Ґб«Ё «оЎ®© Ё§ ᮮ⢥вбвўгойЁе ЎЁв®ў
а §аҐиҐ­Ёп ўў®¤ /ўлў®¤  ў TSS а ўҐ­ 1.

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

Ћвбгвбвўгов

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

‘Ў®© #GP(0), Ґб«Ё «оЎ®© Ё§ ᮮ⢥вбвўгойЁе ЎЁв®ў а §аҐиҐ­Ёп
ўў®¤ /ўлў®¤  ў TSS а ўҐ­ 1.

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


INC - €­ЄаҐ¬Ґ­в ­  1

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|FE /0 INC r/m8 1/3 €­ЄаҐ¬Ґ­в Ў ©в  r/m ­  1 |
|FF /0 INC r/m16 1/3 €­ЄаҐ¬Ґ­в б«®ў  r/m ­  1 |
|FF /6 INC r/m32 1/3 €­ЄаҐ¬Ґ­в ¤ў®©­®Ј® б«®ў  r/m ­  1|
|40 + rw INC r16 1 €­ЄаҐ¬Ґ­в б«®ў  ў ॣЁбвॠ­  1 |
|40 + rd INC r32 1 €­ЄаҐ¬Ґ­в ¤ў®©­®Ј® б«®ў  |
| ў ॣЁбвॠ­  1 |
-----------------------------------------------------------------

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

DEST <- DEST + 1;

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

Љ®¬ ­¤  DEC ЇаЁЎ ў«пҐв 1 Є ®ЇҐа ­¤г. Љ®¬ ­¤  INC ­Ґ Ё§¬Ґ­пҐв
д« Ј  CF. „«п ў®§¤Ґ©бвўЁп ­  д« Ј CF ЁбЇ®«м§г©вҐ Є®¬ ­¤г ADD б
­ҐЇ®б।б⢥­­л¬ ®ЇҐа ­¤®¬, а ў­л¬ 1.

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

”« ЈЁ OF, SF, ZF, AF Ё PF гбв ­ ў«Ёў овбп ў ᮮ⢥вбвўЁЁ б
१г«мв в®¬.


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

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

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

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

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

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

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

INS/INSB/INSW/INSD - ‚ў®¤ Ё§ Ї®ав  ў бва®Єг

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|6C INS r/m8,DX 17,pm=10*/ ‚ў®¤ Ў ©в  Ё§ Ї®ав  DX ў |
| 32**,vm=30 ES:(E)DI |
|6D INS r/m16,DX 17,pm=10*/ ‚ў®¤ б«®ў  Ё§ Ї®ав  DX ў |
| 32**,vm=30 ES:(E)DI |
|6D INS r/m32,DX 17,pm=10*/ ‚ў®¤ ¤ў®©­®Ј® б«®ў  Ё§ |
| 32**,vm=30 Ї®ав  DX ў ES:(E)DI |
|6C INSB 17,pm=10*/ ‚ў®¤ Ў ©в  Ё§ Ї®ав  DX ў |
| 32**,vm=30 ES:(E)DI |
|6D INSW 17,pm=10*/ ‚ў®¤ б«®ў  Ё§ Ї®ав  DX ў |
| 32**,vm=30 ES:(E)DI |
|6D INSD 17,pm=10*/ ‚ў®¤ ¤ў®©­®Ј® б«®ў  Ё§ Ї®ав |
| 32**,vm=30 DX ў ES:(E)DI |
-----------------------------------------------------------------

ЏаЁ¬Ґз ­Ёп: * Ґб«Ё CPL <= IOPL
** Ґб«Ё CPL >= IOPL

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

IF AddressSize = 16
THEN ЁбЇ®«м§®ў ­ЁҐ DI ¤«п Ё­¤ҐЄб жЁЁ ­ §­ зҐ­Ёп;
ELSE (* AddressSize = 32 *)
ЁбЇ®«м§®ў ­ЁҐ EDI ¤«п Ё­¤ҐЄб жЁЁ ­ §­ зҐ­Ёп;
FI;
IF (PE = 1) AND ((VM = 1) OR (CPL > IOPL))
THEN (* ‚Ёавг «м­л© ०Ё¬ 8086 Ё«Ё § йЁйҐ­­л© ०Ё¬ ЇаЁ CPL >
IOPL *)
IF NOT I-O-Permission(SRC, width(SRC))
THEN #GP(0);
FI;
FI;
IF Є®¬ ­¤  Ў ©в®ў®Ј® вЁЇ 
THEN
ES:[Ё­¤ҐЄб-­ §­ зҐ­Ёп] <- [DX]; (* —⥭ЁҐ Ў ©в  Ё§  ¤аҐб­®Ј®
Їа®бва ­бвў  ўў®¤ /ўлў®¤  б®Ј« б­® DX *)
IF DF = 0 THEN IncDec <- 1 ELSE IncDec <- -1; FI;
FI;
IF AddressSize = 16
THEN
ES:[Ё­¤ҐЄб-­ §­ зҐ­Ёп] <- [DX]; (* —⥭ЁҐ б«®ў  Ё§  ¤аҐб­®Ј®
Їа®бва ­бвў  ўў®¤ /ўлў®¤  б®Ј« б­® DX *)
IF DF = 0 THEN IncDec <- 2 ELSE IncDec <- -2; FI;
FI;
IF AddressSize = 32
THEN
ES:[Ё­¤ҐЄб-­ §­ зҐ­Ёп] <- [DX]; (* —⥭ЁҐ ¤ў®©­®Ј® б«®ў 
Ё§  ¤аҐб­®Ј® Їа®бва ­бвў  ўў®¤ /ўлў®¤  б®Ј« б­® DX *)
IF DF = 0 THEN IncDec <- 4 ELSE IncDec <- -4; FI;
FI;
Ё­¤ҐЄб-­ §­ зҐ­Ёп <- Ё­¤ҐЄб-­ §­ зҐ­Ёп + IncDec;



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

Љ®¬ ­¤  INS ЇҐаҐбл« Ґв ¤ ­­лҐ Ё§ § ¤ ­­®Ј® ॣЁбв஬ DX Ї®ав 
ўў®¤  ў Ў ©в Ї ¬пвЁ Ё«Ё б«®ў® Ї ¬пвЁ Ї®  ¤аҐбг
ES:Ё­¤ҐЄб-­ §­ зҐ­Ёп. ЋЇҐа ­¤ Ї ¬пвЁ ¤®«¦Ґ­  ¤аҐб®ў вмбп
ॣЁбв஬ ES; ЇҐаҐ®ЇаҐ¤Ґ«Ґ­ЁҐ ᥣ¬Ґ­в  ­Ґў®§¬®¦­®. ђҐЈЁбва
­ §­ зҐ­Ёп - н⮠ॣЁбва DI, Ґб«Ё  ваЁЎгв а §¬Ґа   ¤аҐб  Є®¬ ­¤л
а ўҐ­ 16 ЎЁв ¬, Ё«Ё ॣЁбва EDI, Ґб«Ё  ваЁЎгв а §¬Ґа   ¤аҐб 
а ўҐ­ 32 ЎЁв .

Љ®¬ ­¤  INS ­Ґ Ї®§ў®«пҐв § ¤ ў вм ­®¬Ґа Ї®ав  ­ҐЇ®б।б⢥­­л¬
§­ зҐ­ЁҐ¬. Џ®ав ¤®«¦Ґ­  ¤аҐб®ў вмбп §­ зҐ­ЁҐ¬ ў ॣЁбвॠDX.
ЏҐаҐ¤ ўлЇ®«­Ґ­ЁҐ¬ Є®¬ ­¤л INS ў DX ¤®«¦­® Ўлвм § Ја㦥­®
Їа ўЁ«м­®Ґ §­ зҐ­ЁҐ.

Ђ¤аҐб ­ §­ зҐ­Ёп ®ЇаҐ¤Ґ«пҐвбп ᮤҐа¦Ё¬л¬ ॣЁбва  Ё­¤ҐЄб 
­ §­ зҐ­Ёп. ЏҐаҐ¤ ўлЇ®«­Ґ­ЁҐ¬ Є®¬ ­¤л INS ў ॣЁбва Ё­¤ҐЄб 
­ §­ зҐ­Ёп ¤®«¦­® Ўлвм § Ја㦥­® Їа ўЁ«м­®Ґ §­ зҐ­ЁҐ.

Џ®б«Ґ ўлЇ®«­Ґ­Ёп ЇҐаҐбл«ЄЁ ॣЁбва DI Ё«Ё EDI  ўв®¬ вЁзҐбЄЁ
Ї®«гз Ґв ᮮ⢥вбвўго饥 ЇаЁа йҐ­ЁҐ. …б«Ё д« Ј DF а ўҐ­ 0 (Ўл« 
ўлЇ®«­Ґ­  Є®¬ ­¤  CLD), в® Їа®Ёб室Ёв Ё­ЄаҐ¬Ґ­в ॣЁбва®ў DI Ё«Ё
EDI; …б«Ё д« Ј DF а ўҐ­ 1 (Ўл«  ўлЇ®«­Ґ­  Є®¬ ­¤  STD), в®
Їа®Ёб室Ёв ¤ҐЄаҐ¬Ґ­в ॣЁбва®ў DI Ё«Ё EDI. €­ЄаҐ¬Ґ­в Ё«Ё
¤ҐЄаҐ¬Ґ­в ॣЁбва®ў а ўҐ­ 1 ЇаЁ ўў®¤Ґ Ў ©в , 2 ЇаЁ ўў®¤Ґ б«®ў  Ё
4 ЇаЁ ўў®¤Ґ ¤ў®©­®Ј® б«®ў .

Љ®¬ ­¤л INSB, INSW Ё INSD - нв® бЁ­®­Ё¬л Є®¬ ­¤л INS, а Ў®в ойЁҐ
б Ў ©в®¬, б«®ў®¬ Ё ¤ў®©­л¬ б«®ў®¬, ᮮ⢥вб⢥­­®. Љ®¬ ­¤Ґ INS
¬®¦Ґв ЇаҐ¤иҐбвў®ў вм ЇаҐдЁЄб REP ¤«п ўў®¤  Ў«®Є , а ў­®Ј® CX
Ў ©в®ў Ё«Ё б«®ў. ќв  ®ЇҐа жЁп ®ЇЁб ­  ¤«п Є®¬ ­¤л REP.

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

Ћвбгвбвўгов

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

#GP(0), Ґб«Ё ⥪гйЁ© га®ўҐ­м ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ зЁб«Ґ­­® Ў®«миҐ
га®ў­п ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ ўў®¤ /ўлў®¤  (IOPL) Ё«Ё Ґб«Ё «оЎ®© Ё§
ᮮ⢥вбвўгойЁе ЎЁв®ў а §аҐиҐ­Ёп ўў®¤ /ўлў®¤  ў TSS а ўҐ­ 1. #GP
(0), Ґб«Ё १г«мв в ¤®«¦Ґ­ Ї®¬Ґй вмбп ў ᥣ¬Ґ­в, ¤«п Є®в®а®Ј®
§ ЇаҐйҐ­  § ЇЁбм; #GP(0) ў б«гз Ґ ­Ґ¤®ЇгбвЁ¬®Ј® ЁбЇ®«­ЁвҐ«м­®Ј®
 ¤аҐб  ®ЇҐа ­¤  Ї ¬пвЁ ў ᥣ¬Ґ­в е CS, DS, ES, FS Ё«Ё GS; #SS(0)
ў б«гз Ґ ­Ґ¤®ЇгбвЁ¬®Ј®  ¤аҐб  ў ᥣ¬Ґ­вҐ SS; #PF(Є®¤ бЎ®п) ў
б«гз Ґ бва ­Ёз­®Ј® бЎ®п; #AC ¤«п ­Ґўла ў­Ґ­­®© ббл«ЄЁ Є Ї ¬пвЁ
ЇаЁ ⥪г饬 га®ў­Ґ ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ, а ў­®¬ 3.

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

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

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

‘Ў®© #GP(0), Ґб«Ё «оЎ®© Ё§ ᮮ⢥вбвўгойЁе ЎЁв®ў а §аҐиҐ­Ёп
ўў®¤ /ўлў®¤  ў TSS а ўҐ­ 1. #PF (Є®¤ бЎ®п) ¤«п бва ­Ёз­ле бЎ®Ґў;
#AC ¤«п ­Ґўла ў­Ґ­­®© ббл«ЄЁ Є Ї ¬пвЁ ЇаЁ ⥪г饬 га®ў­Ґ
ЇаЁўЁ«ҐЈЁа®ў ­­®бвЁ, а ў­®¬ 3.

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

CALL/INTO - ‚맮ў Їа®жҐ¤гал ЇаҐалў ­Ёп

-----------------------------------------------------------------
|Љ®¤ Љ®¬ ­¤  —Ёб«® ЋЇЁб ­ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|CC INT 3 26 ЏаҐалў ­ЁҐ 3 - |
| «®ўгиЄ  ¤«п ®в« ¤зЁЄ  |
|CC INT 3 44 ЏаҐалў ­ЁҐ 3 -‡ йЁйҐ­­л© ०Ё¬,|
| в  ¦Ґ ЇаЁўЁ«ҐЈЁа®ў ­­®бвм |
|CC INT 3 71 ЏаҐалў ­ЁҐ 3 -‡ йЁйҐ­­л© ०Ё¬,|
| Ў®«ми п ЇаЁўЁ«ҐЈЁа®ў ­­®бвм |
|CC INT 3 82 ЏаҐалў ­ЁҐ 3 - Ё§ ०Ё¬  V86, Є|
| га®ў­о ЇаЁў-бвЁ PL 0 |
|CC INT 3 37+TS ЏаҐалў ­ЁҐ 3 -‡ йЁйҐ­­л© ०Ё¬,|
| зҐаҐ§ и«о§ § ¤ зЁ |
|CD ib INT imm8 30 ЏаҐалў ­ЁҐ, § ¤ ­­®Ґ ­ҐЇ®б।- |
| б⢥­­л¬ Ў ©в®¬ |
|CD ib INT imm8 44 ЏаҐалў ­ЁҐ - ‡ йЁйҐ­­л© ०Ё¬,|
| в  ¦Ґ ЇаЁўЁ«ҐЈЁа®ў ­­®бвм |
|CD ib INT imm8 71 ЏаҐалў ­ЁҐ - ‡ йЁйҐ­­л© ०Ё¬,|
| Ў®«ми п ЇаЁўЁ«ҐЈЁа®ў ­­®бвм |
|CD ib INT imm8 86 ЏаҐалў ­ЁҐ - Ё§ ०Ё¬  V86, Є|
| га®ў­о ЇаЁў-бвЁ PL 0 |
|CD ib INT imm8 37+TS ЏаҐалў ­ЁҐ - ‡ йЁйҐ­­л© ०Ё¬,|
| зҐаҐ§ и«о§ § ¤ зЁ |
|CE INTO “бЇҐи­®:28 ЏаҐалў ­ЁҐ 4 - …б«Ё д« Ј ЇҐаҐ- |
| ‘Ў®© : 3 Ї®«­Ґ­Ёп а ўҐ­ 1 |
|CE INTO 46 ЏаҐалў ­ЁҐ 4 -‡ йЁйҐ­­л© ०Ё¬,|
| в  ¦Ґ ЇаЁўЁ«ҐЈЁа®ў ­­®бвм |
|CE INTO 73 ЏаҐалў ­ЁҐ 4 -‡ йЁйҐ­­л© ०Ё¬,|
| Ў®«ми п ЇаЁўЁ«ҐЈЁа®ў ­­®бвм |
|CE INTO 84 ЏаҐалў ­ЁҐ 4 - Ё§ ०Ё¬  V86, Є|
| га®ў­о ЇаЁў-бвЁ PL 0 |
|CE INTO 39+TS ЏаҐалў ­ЁҐ 4 -‡ йЁйҐ­­л© ०Ё¬,|
| зҐаҐ§ и«о§ § ¤ зЁ |
-----------------------------------------------------------------

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

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

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

ЏаЁ¬Ґз ­ЁҐ: ‘«Ґ¤го饥 ®ЇҐа жЁ®­­®Ґ ®ЇЁб ­ЁҐ ЇаЁ¬Ґ­Ё¬® ­Ґ в®«мЄ®
Є ўлиҐгЇ®¬п­гвл¬ Є®¬ ­¤ ¬, ­® Ё Є ў­Ґи­Ё¬ ЇаҐалў ­Ёп¬ Ё
ЁбЄ«о祭Ёп¬.

IF PE = 0
THEN GOTO ђ…†€Њ-ђ…Ђ‹њЌ›•-Ђ„ђ…‘Ћ‚;
pELSE GOTO ‡Ђ™€™…ЌЌ›‰ ђ…†€Њ;
FI;

ђ…†€Њ-ђ…Ђ‹њЌ›•_Ђ„ђ…‘Ћ‚:
Push(FLAGS);
IF <- 0; (* ЋзЁбвЁвм д« Ј ЇаҐалў ­Ёп *)
TF <- 0; (* ЋзЁбвЁвм д« Ј «®ўгиЄЁ *)
Push(CS);
Push(IP);
(* Љ®¤л ®иЁЎЄЁ ў б⥪ ­Ґ Ї®¬Ґй «Ёбм *)
CS <- IDT[Ќ®¬Ґа ЇаҐалў ­Ёп * 4].ᥫҐЄв®а;
IP <- IDT[Ќ®¬Ґа ЇаҐалў ­Ёп * 4].ᬥ饭ЁҐ;

‡Ђ™€™…ЌЌ›‰-ђ…†€Њ:
‚ҐЄв®а ЇаҐалў ­Ёп ¤®«¦Ґ­ Ўлвм ў ЇаҐ¤Ґ« е Ја ­Ёжл в Ў«Ёжл IDT,
Ё­ зҐ #GP(­®¬Ґа ўҐЄв®а  * 8 + 2 + EXT);
Ѓ ©в ¤ҐбЄаЁЇв®а  AR ¤®«¦Ґ­ гЄ §лў вм ­  и«о§ ЇаҐалў ­Ёп, и«о§
«®ўгиЄЁ Ё«Ё и«о§ § ¤ зЁ,
Ё­ зҐ #GP(­®¬Ґа ўҐЄв®а  * 8 + 2 + EXT);
IF Їа®Ја ¬¬­®Ґ ЇаҐалў ­ЁҐ (* в.Ґ. ўл§ў ­­®Ґ INT n, INT 3 Ё«Ё
INTO *)
THEN
IF DPL ¤ҐбЄаЁЇв®а  и«о§  < CPL
THEN #GP(­®¬Ґа ўҐЄв®а  * 8 + 2 + EXT);
FI;
FI;
«о§ ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм, Ё­ зҐ #NP(­®¬Ґа ўҐЄв®а  * 8 + 2 +
EXT);
IF и«о§ «®ўгиЄЁ OR и«о§ ЇаҐалў ­Ёп
THEN GOTO ‹ћ‡-Џђ…ђ›‚ЂЌ€џ-€‹€-‹ћ‡-Џђ…ђ›‚ЂЌ€џ;
ELSE GOTO ‹ћ‡-‡Ђ„Ђ—€;
FI;

‹ћ‡-‹Ћ‚“Љ€-€‹€-‹ћ‡-Џђ…ђ›‚ЂЌ€џ:
ђ бᬮваЁ¬ ᥫҐЄв®а CS Ё ¤ҐбЄаЁЇв®а, § ¤ ­­л© ў ¤ҐбЄаЁЇв®аҐ
и«о§ ;
‘Ґ«ҐЄв®а ¤®«¦Ґ­ Ўлвм ­Ґ-Їгбвл¬, Ё­ зҐ #GP(EXT);
‘Ґ«ҐЄв®а ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е ҐЈ® ¤ҐбЄаЁЇв®а­®© в Ў«Ёжл
ELSE #GP(ᥫҐЄв®а+EXT);
Ѓ ©в ¤ҐбЄаЁЇв®а  AR ¤®«¦Ґ­ гЄ §лў вм Є®¤®ўл© ᥣ¬Ґ­в
ELSE #GP(ᥫҐЄв®а+EXT);
‘ҐЈ¬Ґ­в ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм, Ё­ зҐ #NP(ᥫҐЄв®а+EXT);

IF ­Ґ-Є®­д®а¬­л© Є®¤®ўл© ᥣ¬Ґ­в AND DPL < CPL
THEN GOTO Џђ…ђ›‚ЂЌ€…-ЌЂ-‚Ќ“’ђ…ЌЌ……-ЉЋ‹њ–Ћ-Џђ€‚€‹…ѓ€ђЋ‚ЂЌЌЋ‘’€;
ELSE
IF Є®­д®а¬­л© Є®¤®ўл© ᥣ¬Ґ­в AND DPL = CPL
THEN GOTO Џђ…ђ›‚ЂЌ€…-ЌЂ-’Ћ’-†…-“ђЋ‚…Ќњ-Џђ€‚€‹…ѓ€ђЋ‚ЂЌЌЋ‘’€;
ELSE #GP(ᥫҐЄв®а CS + EXT);
FI;
FI;

Џђ…ђ›‚ЂЌ€…-ЌЂ-‚Ќ“’ђ…ЌЌ……-ЉЋ‹њ–Ћ-Џђ€‚€‹…ѓ€ђЋ‚ЂЌЌЋ‘’€:
Џа®ўҐаЄ  ᥫҐЄв®а  Ё ¤ҐбЄаЁЇв®а  ­®ў®Ј® б⥪  ў ⥪г饬 TSS;
‘Ґ«ҐЄв®а ¤®«¦Ґ­ Ўлвм ­Ґ-Їгбвл¬, Ё­ зҐ #TS(EXT);
€­¤ҐЄб ᥫҐЄв®а  ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е ¤ҐбЄаЁЇв®а­®© в Ў«Ёжл
ELSE #TS(ᥫҐЄв®а SS + EXT);
RPL ᥫҐЄв®а  ¤®«¦Ґ­ Ўлвм а ўҐ­ DPL Є®¤®ў®Ј® ᥣ¬Ґ­в 
ELSE #TS(ᥫҐЄв®а SS + EXT);
RPL ᥣ¬Ґ­в  б⥪  ¤®«¦Ґ­ Ўлвм а ўҐ­ DPL Є®¤®ў®Ј® ᥣ¬Ґ­в 
ELSE #TS(ᥫҐЄв®а SS + EXT);
„ҐбЄаЁЇв®а ¤®«¦Ґ­ гЄ §лў вм ­  ¤®бвгЇ­л© ¤«п § ЇЁбЁ ᥣ¬Ґ­в
¤ ­­ле
ELSE #TS(ᥫҐЄв®а SS + EXT);
‘ҐЈ¬Ґ­в ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм
ELSE #SS(ᥫҐЄв®а SS + EXT);
IF 32-ЎЁв®ўл© и«о§
THEN ­®ўл© б⥪ ¤®«¦Ґ­ Ё¬Ґвм ¬Ґбв® ¤«п 20 Ў ©в®ў Ё­ зҐ #SS(0)
ELSE ­®ўл© б⥪ ¤®«¦Ґ­ Ё¬Ґвм ¬Ґбв® ¤«п 10 Ў ©в®ў Ё­ зҐ #SS(0)
FI;
“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е ᥣ¬Ґ­в  CS Ё­ зҐ
#GP(0);
‡ Јаг§Є  ­®ў®Ј® §­ зҐ­Ёп SS Ё eSP Ё§ TSS;
IF 32-Ў ©в®ўл© и«о§
THEN CS:EIP <- ᥫҐЄв®а:ᬥ饭ЁҐ Ё§ и«о§ ;
ELSE CS:IP <- ᥫҐЄв®а:ᬥ饭ЁҐ Ё§ и«о§ ;
FI;
‡ Јаг§Є  ¤ҐбЄаЁЇв®а  CS ў ­ҐўЁ¤Ё¬го з бвм ॣЁбва  CS;
‡ Јаг§Є  ¤ҐбЄаЁЇв®а  SS ў ­ҐўЁ¤Ё¬го з бвм ॣЁбва  SS;
IF 32-ЎЁв®ўл© и«о§
THEN
Push (¤ «м­Ё© гЄ § вҐ«м ­  бв ал© б⥪) (* 3 б«®ў  ¤®Ї®«­повбп
§ Ї®«­ЁвҐ«п¬Ё ¤® 4 *);
Push (EFLAGS);
Push (¤ «м­Ё© гЄ § вҐ«м ­   ¤аҐб ў®§ўа в ) (* 3 б«®ў 
¤®Ї®«­повбп § Ї®«­ЁвҐ«п¬Ё ¤® 4 *);
ELSE
Push (¤ «м­Ё© гЄ § вҐ«м ­  бв ал© б⥪) (* 2 б«®ў  *)
Push (FLAGS);
Push (¤ «м­Ё© гЄ § вҐ«м ­   ¤аҐб ў®§ўа в ) (* 2 б«®ў  *)

FI;
“бв ­®ўЄ  CPL ў §­ зҐ­ЁҐ DPL ­®ў®Ј® Є®¤®ў®Ј® ᥣ¬Ґ­в ;
“бв ­®ўЄ  RPL CS ў §­ зҐ­ЁҐ CPL;
IF и«о§ ЇаҐалў ­Ёп THEN IF <- 0 (* д« Ј ЇаҐалў ­Ёп 0
(§ ЇаҐйҐ­ЁҐ) *); FI;
TF <- 0;
NT <- 0;


Џђ…ђ›‚ЂЌ€…-€‡-ђ…†€ЊЂ-V86:
‚६EFlags <- EFLAGS;
VM <- 0;
TF <- 0;
IF ®Ўб«г¦Ёў Ґвбп зҐаҐ§ и«о§ ЇаҐалў ­Ёп THEN IF <- 0;
‚६SS <- SS;
‚६ESP <- ESP;
SS <- TSS.SS0; (* Ё§¬Ґ­Ґ­ЁҐ ­  б⥪®ўл© ᥣ¬Ґ­в га®ў­п 0 *)
ESP <- TSS.ESP0; (* Ё§¬Ґ­Ґ­ЁҐ ­  б⥪®ўл© ᥣ¬Ґ­в га®ў­п 0 *)
Push(GS); (* „®Ї®«­пҐвбп ¤® ¤ўге б«®ў *)
Push(FS); (* „®Ї®«­пҐвбп ¤® ¤ўге б«®ў *)
Push(DS); (* „®Ї®«­пҐвбп ¤® ¤ўге б«®ў *)
Push(ES); (* „®Ї®«­пҐвбп ¤® ¤ўге б«®ў *)
GS <- 0;
FS <- 0;
DS <- 0;
ES <- 0;
Push(‚६SS); (* „®Ї®«­пҐвбп ¤® ¤ўге б«®ў *)
Push(‚६ESP);
Push(‚६Eflags);
Push(CS); (* „®Ї®«­пҐвбп ¤® ¤ўге б«®ў *)
Push(EIP);
CS:EIP <- ᥫҐЄв®а:ᬥ饭ЁҐ Ё§ и«о§  ЇаҐалў ­Ёп;
(* Ќ зЁ­ Ґвбп ўлЇ®«­Ґ­ЁҐ ­®ў®© Ї®¤Їа®Ја ¬¬л ў § йЁйҐ­­®¬ ०Ё¬Ґ *)

Џђ…ђ›‚ЂЌ€…-ЌЂ-’Ћ’-†…-“ђЋ‚…Ќњ-Џђ€‚€‹…ѓ€ђЋ‚ЂЌЌЋ‘’€:
IF 32-ЎЁв®ўл© и«о§
THEN ѓа ­Ёжл ⥪г饣® б⥪  ¤®«¦­л Ї®§ў®«Ёвм Ї®¬ҐбвЁвм вг¤  10
Ў ©в®ў, Ё­ зҐ #SS(0);
ELSE ѓа ­Ёжл ⥪г饣® б⥪  ¤®«¦­л Ї®§ў®«Ёвм Ї®¬ҐбвЁвм вг¤  6
Ў ©в®ў, Ё­ зҐ #SS(0);
FI;
IF ЇаҐалў ­ЁҐ Ўл«® ўл§ў ­® ЁбЄ«о祭ЁҐ¬ б Є®¤®¬ ®иЁЎЄЁ
THEN ѓа ­Ёжл б⥪  ¤®«¦­л Ї®§ў®«Ёвм Ї®¬ҐбвЁвм вг¤  ҐйҐ 2 Ў ©в ;
ELSE #SS(0);
FI;
“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ ­ е®¤Ёвмбп ў Ја ­Ёж е CS, Ё­ зҐ #GP(0);
IF 32-ЎЁв®ўл© и«о§
THEN
Push(EFLAGS);
Push(¤ «м­Ё© гЄ § вҐ«м ­   ¤аҐб ў®§ўа в ); (* 3 б«®ў ,
¤®Ї®«­Ґ­­лҐ ¤® 4 б«®ў *)
CS:IP <- ᥫҐЄв®а:ᬥ饭ЁҐ Ё§ и«о§ ;
ELSE (* 16-ЎЁв®ўл© и«о§ *)
Push(FLAGS);
Push(¤ «м­Ё© гЄ § вҐ«м ­   ¤аҐб ў®§ўа в ); (* 2 б«®ў  *)
CS:IP <- ᥫҐЄв®а:ᬥ饭ЁҐ Ё§ и«о§ ;
FI;
‡ Јаг§Є  ¤ҐбЄаЁЇв®а  CS ў ­ҐўЁ¤Ё¬го з бвм ॣЁбва  CS;
“бв ­®ўЄ  Ї®«п RPL CS а ў­л¬ CPL;
Push(Є®¤ ®иЁЎЄЁ); (* Ґб«Ё ®­ Ё¬ҐҐвбп *)
IF и«о§ ЇаҐалў ­Ёп THEN IF <- 0; FI;
TF <- 0;
NT <- 0;

‹ћ‡-‡Ђ„Ђ—€:
ђ бᬮваЁ¬ ᥫҐЄв®а CS, § ¤ ­­л© ў ¤ҐбЄаЁЇв®аҐ и«о§  § ¤ зЁ;
‚ ЎЁвҐ ‹®Є «м­л©/ѓ«®Ў «м­л© ¤®«¦­® Ўлвм § ¤ ­® §­ зҐ­ЁҐ
ѓ«®Ў «м­л©, Ё­ зҐ #TS(ᥫҐЄв®а TSS);
€­¤ҐЄб ¤®«¦Ґ­ Ўлвм ў Ја ­Ёж е GDT, Ё­ зҐ #TS(ᥫҐЄв®а TSS);
Ѓ ©в AR ¤®«¦Ґ­ § ¤ ў вм ¤®бвгЇ­л© TSS (­Ё¦­ЁҐ ЎЁвл 00001),
Ё­ зҐ #TS(ᥫҐЄв®а TSS);
TSS ¤®«¦Ґ­ ЇаЁбгвбвў®ў вм, Ё­ зҐ #NP(ᥫҐЄв®а TSS);
Џ…ђ…Љ‹ћ—…Ќ€…-‡Ђ„Ђ— б® ў«®¦Ґ­­®бвмо ў TSS;
IF ЇаҐалў ­ЁҐ Ўл«® ўл§ў ­® бЎ®Ґ¬ б Є®¤®¬ ®иЁЎЄЁ
THEN
ѓа ­Ёжл б⥪  ¤®«¦­л Ї®§ў®«Ёвм Ї®¬ҐбвЁвм вг¤  ҐйҐ 2 Ў ©в ,
Ё­ зҐ ##SS(0);
Џ®¬ҐйҐ­ЁҐ ў б⥪ Є®¤ ®иЁЎЄЁ;
FI;
“Є § вҐ«м Є®¬ ­¤ ¤®«¦Ґ­ Ўлвм ў ЇаҐ¤Ґ« е CS, Ё­ зҐ #GP(0);


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

Љ®¬ ­¤  INT n Їа®Ја ¬¬­® ЈҐ­ҐаЁагҐв ўл§®ў ®а Ў®взЁЄ  ЇаҐалў ­Ёп.
ЌҐЇ®б।б⢥­­л© ®ЇҐа ­¤, ®в 0 ¤® 255, § ¤ Ґв ­®¬Ґа Ё­¤ҐЄб  ў
в Ў«ЁжҐ ¤ҐбЄаЁЇв®а®ў ЇаҐалў ­Ё© (IDT) ¤«п ўл§лў Ґ¬®©
Ї®¤Їа®Ја ¬¬л ЇаҐалў ­Ёп. ‚ § йЁйҐ­­®¬ ०Ё¬Ґ IDT б®бв®Ёв Ё§
¬ ббЁў  ў®бм¬Ё-Ў ©в®ўле ¤ҐбЄаЁЇв®а®ў; ¤ҐбЄаЁЇв®а ¤«п
 ЄвЁўЁ§Ёа®ў ­­®Ј® ЇаҐалў ­Ёп ¤®«¦Ґ­ ®Ў®§­ з вм и«о§ ЇаҐалў ­Ёп,
«®ўгиЄЁ Ё«Ё § ¤ зЁ. ‚ ०Ё¬Ґ ॠ«м­ле  ¤аҐб®ў IDT ЇаҐ¤бв ў«пҐв
б®Ў®© ¬ ббЁў Ё§ гЄ § вҐ«Ґ© ¤«Ё­®© ў зҐвлॠЎ ©в . ‚ § йЁйҐ­­®¬
०Ё¬Ґ Ё ०Ё¬Ґ ॠ«м­ле  ¤аҐб®ў Ў §®ўл© «Ё­Ґ©­л©  ¤аҐб IDT
®ЇаҐ¤Ґ«Ґ­ ᮤҐа¦Ё¬л¬ IDTR.

“б«®ў­ п Є®¬ ­¤  INTO Ё¤Ґ­вЁз­  Є®¬ ­¤Ґ ЇаҐалў ­Ёп INT n, § 
ЁбЄ«о祭ЁҐ¬ в®Ј®, зв® ­®¬Ґа ЇаҐалў ­Ёп ­Ґпў­® гбв ­ ў«Ёў Ґвбп
а ў­л¬ 4, Ё ЇаҐалў ­ЁҐ Їа®Ёб室Ёв в®«мЄ® ЇаЁ гбв ­®ў«Ґ­­®¬ д« ЈҐ
ЇҐаҐЇ®«­Ґ­Ёп Їа®жҐбб®а  i486.

ЏҐаўлҐ 32 ЇаҐалў ­Ёп १ҐаўЁа®ў ­л Intel ¤«п бЁб⥬­ле 楫Ґ©.
ЌҐЄ®в®алҐ Ё§ нвЁе ЇаҐалў ­Ё© ЁбЇ®«м§говбп ¤«п ў­гв७­Ёе
ЁбЄ«о祭Ё©.

Љ®¬ ­¤  INT n ў 楫®¬ ўҐ¤Ґв бҐЎп Є Є ¤ «м­Ё© ўл§®ў, § 
ЁбЄ«о祭ЁҐ¬ в®Ј®, зв® д« Ј®ўл© ॣЁбва Ї®¬Ґй Ґвбп ў б⥪ ¤®
 ¤аҐб  ў®§ўа в . Џа®жҐ¤гал ЇаҐалў ­Ёп ўлЇ®«­пов ў®§ўа в
Ї®б।бвў®¬ Є®¬ ­¤л IRET, Є®в®а п Ё§ў«ҐЄ Ґв Ё§ б⥪  д« ЈЁ Ё
 ¤аҐб ў®§ўа в .

‚ ०Ё¬Ґ ॠ«м­ле  ¤аҐб®ў Є®¬ ­¤  INT n Ї®¬Ґй Ґв ў б⥪ д« ЈЁ,
ॣЁбва CS Ё IP ¤«п ў®§ўа в  ў гЄ § ­­®© Ї®б«Ґ¤®ў вҐ«м­®бвЁ Ё
§ вҐ¬ ўлЇ®«­пҐв ЇҐаҐе®¤ Є ¤ «м­Ґ¬г гЄ § вҐ«о, Ё­¤ҐЄбЁа㥬®¬г
­®¬Ґа®¬ ЇаҐалў ­Ёп.


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

ЋвбгвбвўгҐв

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

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


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

Ћвбгвбвўгов; Ґб«Ё ॣЁбва SP Ё«Ё ESP а ўҐ­ 1, 3 Ё«Ё 5 ЇҐаҐ¤
ўлЇ®«­Ґ­ЁҐ¬ Є®¬ ­¤л INT Ё«Ё INTO, в® Їа®жҐбб®а ЇҐаҐе®¤Ёв ў ०Ё¬
§ ЄалвЁп ўб«Ґ¤бвўЁҐ ­Ґ¤®бв в®з­®Ј® а §¬Ґа  б⥪ .

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

‘Ў®© #GP(0), Ґб«Ё IOPL ¬Ґ­миҐ 3, в®«мЄ® ¤«п Є®¬ ­¤л INT n, зв®
Ї®§ў®«пҐв н¬г«пжЁо; ЏаҐалў ­ЁҐ 3 (0CCH) ЈҐ­ҐаЁагҐв ЁбЄ«о祭ЁҐ
Є®­ва®«м­®© в®зЄЁ; Є®¬ ­¤  INTO ЈҐ­ҐаЁагҐв ЁбЄ«о祭ЁҐ
ЇҐаҐЇ®«­Ґ­Ёп ЇаЁ гбв ­®ў«Ґ­­®¬ д« ЈҐ OF.

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

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