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