Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессор 486 / I486 / CH26-03
.TXTCBW/CWDE - ЏаҐ®Ўа §®ў ЁҐ Ў ©в ў б«®ў®/ЏаҐ®Ўа §®ў ЁҐ б«®ў
ў ¤ў®©®Ґ б«®ў®
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ¤ —Ёб«® ЋЇЁб ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|98 CBW 3 AX <- а биЁаҐЁҐ § Є®¬ AL |
|98 CWDE 3 EAX<- а биЁаҐЁҐ § Є®¬ AX |
-----------------------------------------------------------------
ђ Ў®в Є®¬ ¤л
--------------
IF OperandSize = 16 (* Є®¬ ¤ = CBW *)
THEN AX <- SignExtend(AL);
ELSE (OperandSize = 32, Є®¬ ¤ = CWDE *)
EAX <- SignExtend(AX);
FI;
ЋЇЁб ЁҐ
--------
Љ®¬ ¤ CBW ЇаҐ®Ўа §®ўлў Ґв Ё¬ҐойЁ© § Є Ў ©в ў ॣЁбвॠAL ў
Ё¬Ґо饥 § Є б«®ў® ў ॣЁбвॠAX Їг⥬ а биЁаҐЁп бв а襣® ЎЁв
ॣЁбва AL (ЎЁв § Є ) ўбҐ ЎЁвл ॣЁбва AH. Љ®¬ ¤ CWDE
ЇаҐ®Ўа §®ўлў Ґв Ё¬Ґо饥 § Є б«®ў® ў ॣЁбвॠAX ў Ё¬Ґо饥 § Є
¤ў®©®Ґ б«®ў® ў ॣЁбвॠ…AX Їг⥬ а биЁаҐЁп бв а襣® ЎЁв
ॣЁбва AX (ЎЁв § Є ) ¤ў бв аиЁе Ў ©в ॣЁбва EAX.
Ћв¬ҐвЁ¬, зв® Є®¬ ¤ CWDE ®в«Ёз ®в Є®¬ ¤л CWD. Љ®¬ ¤ CWD
ЁбЇ®«м§гҐв ў Є зҐб⢥ § зҐЁп ў¬Ґб⮠ॣЁбва EAX Ї аг
ॣЁбва®ў DX:AX.
€§¬ҐпҐ¬лҐ д« ЈЁ
----------------
Ћвбгвбвўгов
€бЄ«озҐЁп § йЁйҐ®Ј® ०Ё¬
----------------------------------
Ћвбгвбвўгов
€бЄ«о票п ०Ё¬ ॠ«мле ¤аҐб®ў
---------------------------------------
Ћвбгвбвўгов
€бЄ«озҐЁп ўЁавг «м®Ј® ०Ё¬ 8086
----------------------------------------
Ћвбгвбвўгов
-----------------------------------------------------------------
CLC - ЋзЁбвЁвм д« Ј ЇҐаҐ®б
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ¤ —Ёб«® ЋЇЁб ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
| F8 CLC 2 ЋзЁбвЁвм д« Ј ЇҐаҐ®б |
-----------------------------------------------------------------
ђ Ў®в Є®¬ ¤л
--------------
CF <- 0;
ЋЇЁб ЁҐ
--------
Љ®¬ ¤ CLC ®зЁй Ґв д« Ј CF. Ќ ¤агЈЁҐ д« ЈЁ Ё«Ё ॣЁбвал ® Ґ
ў«ЁпҐв.
€§¬ҐпҐ¬лҐ д« ЈЁ
----------------
ЋзЁй Ґвбп д« Ј CF.
€бЄ«озҐЁп § йЁйҐ®Ј® ०Ё¬
----------------------------------
Ћвбгвбвўгов
€бЄ«о票п ०Ё¬ ॠ«мле ¤аҐб®ў
---------------------------------------
Ћвбгвбвўгов
€бЄ«озҐЁп ўЁавг «м®Ј® ०Ё¬ 8086
----------------------------------------
Ћвбгвбвўгов
-----------------------------------------------------------------
CLD - ЋзЁбвЁвм д« Ј Їа ў«ҐЁп
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ¤ —Ёб«® ЋЇЁб ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
| FC CLD 2 ЋзЁбвЁвм д« Ј Їа ў«ҐЁп: ЇаЁ |
| ўлЇ®«ҐЁЁ бва®Є®ўле Є®¬ ¤ Ўг¤Ґв|
| Їа®Ёб室Ёвм ЁЄаҐ¬Ґв SI Ё DI |
-----------------------------------------------------------------
ђ Ў®в Є®¬ ¤л
--------------
DF <- 0;
ЋЇЁб ЁҐ
--------
Љ®¬ ¤ CLD ®зЁй Ґв д« Ј Їа ў«ҐЁп. Ќ ¤агЈЁҐ д« ЈЁ Ё«Ё
ॣЁбвал ® Ґ ў«ЁпҐв. Џ®б«Ґ ўлЇ®«ҐЁп Є®¬ ¤л CLD бва®Є®ўлҐ
Є®¬ ¤л Ўг¤гв ЁЄаҐ¬ҐвЁа®ў вм ЁбЇ®«м§гҐ¬лҐ Ё¬Ё Ё¤ҐЄблҐ
ॣЁбвал (SI Ё/Ё«Ё DI).
€§¬ҐпҐ¬лҐ д« ЈЁ
----------------
ЋзЁй Ґвбп д« Ј DF.
€бЄ«озҐЁп § йЁйҐ®Ј® ०Ё¬
----------------------------------
Ћвбгвбвўгов
€бЄ«о票п ०Ё¬ ॠ«мле ¤аҐб®ў
---------------------------------------
Ћвбгвбвўгов
€бЄ«озҐЁп ўЁавг «м®Ј® ०Ё¬ 8086
----------------------------------------
Ћвбгвбвўгов
-----------------------------------------------------------------
CLI - ЋзЁбвЁвм д« Ј ЇаҐалў Ёп
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ¤ —Ёб«® ЋЇЁб ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
| FA CLI 5 ЋзЁбвЁвм д« Ј ЇаҐалў Ёп; |
| ЇаҐалў Ёп § ЇаҐйҐл |
-----------------------------------------------------------------
ђ Ў®в Є®¬ ¤л
--------------
IF <- 0;
ЋЇЁб ЁҐ
--------
Љ®¬ ¤ CLI ®зЁй Ґв д« Ј ЇаҐалў Ёп IF, Ґб«Ё ⥪гйЁ© га®ўҐм
ЇаЁўЁ«ҐЈЁа®ў ®бвЁ Є Є ¬ЁЁ¬г¬ а ўҐ IOPL. Ќ ¤агЈЁҐ д« ЈЁ ®
Ґ ў«ЁпҐв. ‚ҐиЁҐ ЇаҐалў Ёп Ґ а бЇ®§ овбп ў Є®жҐ Є®¬ ¤л
CLI Ё зЁ п б нв®Ј® ¬®¬Ґв ¤® гбв ®ўЄЁ Є®¬ ¤л IF.
€§¬ҐпҐ¬лҐ д« ЈЁ
----------------
ЋзЁй Ґвбп д« Ј IF.
€бЄ«озҐЁп § йЁйҐ®Ј® ०Ё¬
----------------------------------
#GP(0), Ґб«Ё ⥪гйЁ© га®ўҐм ЇаЁўЁ«ҐЈЁа®ў ®бвЁ Ё¬ҐҐв Ў®«миЁ©
®¬Ґа (в.Ґ. ЇаЁўЁ«ҐЈЁа®ў ®бвм ¬ҐмиҐ), 祬 га®ўҐм
ЇаЁўЁ«ҐЈЁа®ў ®бвЁ ўў®¤ /ўлў®¤ ў ॣЁбваҐ д« Ј®ў. “а®ўҐм
ЇаЁўЁ«ҐЈЁа®ў ®бвЁ ўў®¤ /ўлў®¤ § ¤ Ґв Ё¬ҐмиЁ© га®ўҐм
ЇаЁўЁ«ҐЈЁа®ў ®бвЁ, Є®в®а®¬ ¤®ЇгбЄ Ґвбп ўлЇ®«ҐЁҐ
ўў®¤ /ўлў®¤ .
€бЄ«о票п ०Ё¬ ॠ«мле ¤аҐб®ў
---------------------------------------
Ћвбгвбвўгов
€бЄ«озҐЁп ўЁавг «м®Ј® ०Ё¬ 8086
----------------------------------------
#GP(0) Є Є ¤«п § йЁйҐ®Ј® ०Ё¬ .
-----------------------------------------------------------------
CLTS - ЋзЁбвЁвм д« Ј ЇҐаҐЄ«озҐЁп § ¤ зЁ ў CR0
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ¤ —Ёб«® ЋЇЁб ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
| 0F 06 CLTS 7 ЋзЁбвЁвм д« Ј ЇҐаҐЄ«озҐЁп § ¤ зЁ|
-----------------------------------------------------------------
ђ Ў®в Є®¬ ¤л
--------------
”« Ј TS ў CR0 <- 0;
ЋЇЁб ЁҐ
--------
Љ®¬ ¤ CLTS ®зЁй Ґв д« Ј ЇҐаҐЄ«озҐЁп § ¤ зЁ (TS) ў ॣЁбваҐ
CR0. ќв®в д« Ј гбв ў«Ёў Ґвбп Їа®жҐбб®а®¬ ўбпЄЁ© а §, Є®Ј¤
Їа®Ёб室Ёв ЇҐаҐЄ«о票Ґ § ¤ зЁ. ”« Ј TS ЁбЇ®«м§гҐвбп ¤«п
гЇа ў«ҐЁп а биЁаҐЁп¬Ё Їа®жҐбб®а б«Ґ¤гойЁ¬ ®Ўа §®¬:
- Љ ¦¤®Ґ ўлЇ®«ҐЁҐ Є®¬ ¤л ESC ЇаЁ гбв ®ў«Ґ®¬ д« ЈҐ TS
ўл§лў Ґв ЁбЄ«о票Ґ.
- ‚лЇ®«ҐЁҐ Є®¬ ¤л WAIT ўл§лў Ґв ЁбЄ«о票Ґ «®ўгиЄЁ ЇаЁ
®¤®ўаҐ¬Ґ® гбв ®ў«Ґле д« Ј е MP Ё TS.
’ ЄЁ¬ ®Ўа §®¬, Ґб«Ё ЇҐаҐЄ«о票Ґ § ¤ зЁ Їа®Ё§®и«® Ї®б«Ґ з «
Є®¬ ¤л ESC, ¬®¦Ґв Ї®вॡ®ў вмбп б®еа Ёвм Є®вҐЄбв ¬®¤г«п ¤«п
®ЇҐа жЁЁ б Ї« ў о饩 в®зЄ®©, ЇаҐ¦¤Ґ 祬 ¬®¦Ґв Ўлвм ўл¤ ®ў п
Є®¬ ¤ ESC. ЋЎа Ў®взЁЄ бЎ®п б®еа пҐв Є®вҐЄбв Ё ®зЁй Ґв д« Ј
TS.
Љ®¬ ¤ CLTS ЁбЇ®«м§гҐвбп ў ®ЇҐа жЁ®®¬ Їа®Ја ¬¬®¬
®ЎҐбЇҐзҐЁЁ, Ґ ў ЇаЁЄ« ¤ле Їа®Ја ¬¬ е. ќв® ЇаЁўЁ«ҐЈЁа®ў п
Є®¬ ¤ , Є®в®а п ¬®¦Ґв Ўлвм ўлЇ®«Ґ в®«мЄ® га®ўҐ
ЇаЁўЁ«ҐЈЁа®ў ®бвЁ 0.
€§¬ҐпҐ¬лҐ д« ЈЁ
----------------
ЋзЁй Ґвбп д« Ј TS (д« Ј ў ॣЁбвॠCR0, Ґ ў® д« Ј®ў®¬
ॣЁбваҐ).
€бЄ«озҐЁп § йЁйҐ®Ј® ०Ё¬
----------------------------------
#GP(0), Ґб«Ё Є®¬ ¤ CLTS ўлЇ®«пҐвбп б ⥪гйЁ¬ га®ўҐ¬
ЇаЁўЁ«ҐЈЁа®ў ®бвЁ, Ґ а ўл¬ 0.
€бЄ«о票п ०Ё¬ ॠ«мле ¤аҐб®ў
---------------------------------------
Ћвбгвбвўгов (¤®ЇгбвЁ¬ ў ०Ё¬Ґ ॠ«мле ¤аҐб®ў ¤«п в®Ј®, зв®Ўл
Ї®§ў®«Ёвм ЁЁжЁ «Ё§ жЁо ¤«п § йЁйҐ®Ј® ०Ё¬ ).
€бЄ«озҐЁп ўЁавг «м®Ј® ०Ё¬ 8086
----------------------------------------
Ћвбгвбвўгов
-----------------------------------------------------------------
CMC - „®Ї®«ҐЁҐ д« Ј ЇҐаҐ®б
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ¤ —Ёб«® ЋЇЁб ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
| F5 CMC 2 „®Ї®«ҐЁҐ д« Ј ЇҐаҐ®б |
-----------------------------------------------------------------
ђ Ў®в Є®¬ ¤л
--------------
CF <- NOT CF;
ЋЇЁб ЁҐ
--------
Љ®¬ ¤ CMC Ё§¬ҐпҐв Їа®вЁў®Ї®«®¦®Ґ § 票Ґ д« Ј CF. Ќ
¤агЈЁҐ д« ЈЁ ў«ЁпЁп Ґ ®Є §лў Ґв.
€§¬ҐпҐ¬лҐ д« ЈЁ
----------------
”« Ј CF ᮤҐа¦Ёв ¤®Ї®«ҐЁҐ ҐЈ® Ёб室®Ј® § 票п.
€бЄ«озҐЁп § йЁйҐ®Ј® ०Ё¬
----------------------------------
Ћвбгвбвўгов
€бЄ«о票п ०Ё¬ ॠ«мле ¤аҐб®ў
---------------------------------------
Ћвбгвбвўгов
€бЄ«озҐЁп ўЁавг «м®Ј® ०Ё¬ 8086
----------------------------------------
Ћвбгвбвўгов
-----------------------------------------------------------------
CMP - ‘а ўҐЁҐ ¤ўге ®ЇҐа ¤®ў
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ¤ —Ёб«® ЋЇЁб ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|3C ib CMP AL,imm8 1 ‘а ўҐЁҐ ҐЇ®б।б⢥®Ј® |
| Ў ©в б AL |
|3D iw CMP AX,imm16 1 ‘а ўҐЁҐ ҐЇ®б।б⢥®Ј® |
| б«®ў б AX |
|3D id CMP EAX,imm32 1 ‘а ўҐЁҐ ҐЇ®б।б⢥®Ј® |
| ¤ў®©®Ј® б«®ў б EAX |
|80 /7 ib CMP r/m8,imm8 1/2 ‘а ўҐЁҐ ҐЇ®б।б⢥®Ј® |
| Ў ©в б Ў ©в®¬ ў r/m |
|81 /7 iw CMP r/m16,imm16 1/2 ‘а ўҐЁҐ ҐЇ®б।б⢥®Ј® |
| б«®ў б® б«®ў®¬ ў r/m |
|81 /7 id CMP r/m32,imm32 1/2 ‘а ўҐЁҐ ҐЇ®б।б⢥®Ј® |
| ¤ў®©®Ј® б«®ў б ¤ў®©л¬ б«®ў®¬|
| ў r/m |
-----------------------------------------------------------------
ђ Ў®в Є®¬ ¤л
--------------
LeftSRC - SignExtend(RightSRC);
(* CMP Ґ ўлЇ®«пҐв § ЇЁбм १г«мв в ; ҐҐ § 票Ґ - гбв ®ўЄ
д« Ј®ў *)
ЋЇЁб ЁҐ
--------
Љ®¬ ¤ CMP ўлзЁв Ґв ўв®а®© ®ЇҐа ¤ Ё§ ЇҐаў®Ј®, ® ў ®в«ЁзЁҐ ®в
Є®¬ ¤л SUB, Ґ § ЇЁблў Ґв १г«мв в: ® Ё§¬ҐпҐв в®«мЄ®
б®бв®пЁп д« Ј®ў. Љ®¬ ¤ CMP ®Ўлз® ЁбЇ®«м§гҐвбп ў б®зҐв ЁЁ б
гб«®ўл¬Ё ЇҐаҐе®¤ ¬Ё Ё Є®¬ ¤ ¬Ё SETcc. (‘ЇЁб®Є Ё¬ҐойЁебп
Їа®ўҐа®Є д« Ј®ў, б® § Є®¬ Ё ЎҐ§ д« Ј®ў, ЇаЁў®¤Ёвбп ў ЏаЁ«®¦ҐЁЁ
D). …б«Ё ®ЇҐа ¤ ЇаҐўли Ґв ®¤Ё Ў ©в Ё ба ўЁў Ґвбп б
ҐЇ®б।бвўҐл¬ Ў ©в®¬, в® нв®в Ў ©в б з « а биЁапҐвбп
§ Є®¬.
€§¬ҐпҐ¬лҐ д« ЈЁ
----------------
”« ЈЁ OF, SF, ZF, AF, PF Ё CF гбв ў«Ёў овбп ў ᮮ⢥вбвўЁЁ б
१г«мв ⮬.
€бЄ«озҐЁп § йЁйҐ®Ј® ०Ё¬
----------------------------------
#GP(0) ў б«гз Ґ Ґ¤®ЇгбвЁ¬®Ј® ЁбЇ®«ЁвҐ«м®Ј® ¤аҐб ®ЇҐа ¤
Ї ¬пвЁ ў ᥣ¬Ґв е CS, DS, ES, FS Ё«Ё GS; #SS(0) ў б«гз Ґ
Ґ¤®ЇгбвЁ¬®Ј® ¤аҐб ў ᥣ¬ҐвҐ SS; #PF(Є®¤ бЎ®п) ў б«гз Ґ
бва Ёз®Ј® бЎ®п; #AC ¤«п Ґўла ўҐ®© ббл«ЄЁ Є Ї ¬пвЁ ЇаЁ
⥪г饬 га®ўҐ ЇаЁўЁ«ҐЈЁа®ў ®бвЁ, а ў®¬ 3.
€бЄ«о票п ०Ё¬ ॠ«мле ¤аҐб®ў
---------------------------------------
ЏаҐалў ЁҐ 13, Ґб«Ё Є Є п-«ЁЎ® з бвм ®ЇҐа ¤ «Ґ¦Ёв ўҐ
Їа®бва бвў ЁбЇ®«ЁвҐ«мле ¤аҐб®ў ®в 0 ¤® 0FFFFH.
€бЄ«озҐЁп ўЁавг «м®Ј® ०Ё¬ 8086
----------------------------------------
’Ґ ¦Ґ ЁбЄ«о票п, зв® Ё ¤«п ०Ё¬ ॠ«мле ¤аҐб®ў: #PF (Є®¤
бЎ®п) ¤«п бва Ёзле бЎ®Ґў; #AC ¤«п Ґўла ўҐ®© ббл«ЄЁ Є
Ї ¬пвЁ ЇаЁ ⥪г饬 га®ўҐ ЇаЁўЁ«ҐЈЁа®ў ®бвЁ, а ў®¬ 3.
CMPS/CMPSB/CMPSW/CMPSD - ‘а ўҐЁҐ бва®Є®ўле ®ЇҐа ¤®ў
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ¤ —Ёб«® ЋЇЁб ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|A6 CMPS m8,m8 8 ‘а ўҐЁҐ Ў ©в®ў ў ES:[(E)DI] |
| (ўв®а®© ®ЇҐа ¤) б [(E)SI] |
| (ЇҐаўл© ®ЇҐа ¤) |
|A7 CMPS m16,m16 8 ‘а ўҐЁҐ б«®ў ES:[(E)DI] |
| (ўв®а®© ®ЇҐа ¤) б [(E)SI] |
| (ЇҐаўл© ®ЇҐа ¤) |
|A7 CMPS m32,m32 8 ‘а ўҐЁҐ ¤ў®©ле б«®ў ES:[(E)DI]|
| (ўв®а®© ®ЇҐа ¤) б [(E)SI] |
| (ЇҐаўл© ®ЇҐа ¤) |
|A6 CMPSB 8 ‘а ўҐЁҐ Ў ©в®ў ў ES:[(E)DI] |
| б DS:[SI] |
|A7 CMPSW 8 ‘а ўҐЁҐ б«®ў ў ES:[(E)DI] |
| б DS:[SI] |
|A7 CMPSD 8 ‘а ўҐЁҐ ¤ў®©ле б«®ў ES:[(E)DI]|
| б DS:[SI] |
-----------------------------------------------------------------
ђ Ў®в Є®¬ ¤л
--------------
IF (Є®¬ ¤ = CMPSD) OR
(Є®¬ ¤ Ё¬ҐҐв ®ЇҐа ¤л вЁЇ DWORD)
THEN OperandSize <- 32;
ELSE OperandSize <- 16;
FI;
IF AddressSize = 16
THEN
ЁбЇ®«м§г©вҐ SI Є Є Ё¤ҐЄб Ёбв®зЁЄ Ё DI Є Є Ё¤ҐЄб § 票п
ELSE (* AddressSize = 32 *)
ЁбЇ®«м§г©вҐ ESI Є Є Ё¤ҐЄб Ёбв®зЁЄ Ё EDI Є Є Ё¤ҐЄб
§ 票п;
FI;
IF Є®¬ ¤ Ў ©в®ў®Ј® вЁЇ
THEN
[Ё¤ҐЄб-Ёбв®зЁЄ ] - [Ё¤ҐЄб- § 票п]; (* ба ўҐЁҐ Ў ©в®ў *)
IF DF = 0 THEN IncDec <- 1 ELSE IncDec <- -1; FI;
ELSE
IF OperandSize = 16
THEN
[Ё¤ҐЄб-Ёбв®зЁЄ ] - [Ё¤ҐЄб- § 票п]; (* ба ўҐЁҐ б«®ў *)
IF DF = 0 THEN IncDec <- 2 ELSE IncDec <- -2; FI;
ELSE (* OperandSize = 32 *)
[Ё¤ҐЄб-Ёбв®зЁЄ ] - [Ё¤ҐЄб- § 票п]; (* ба ўҐЁҐ
¤ў®©ле б«®ў *)
IF DF = 0 THEN IncDec <- 4 ELSE IncDec <- -4; FI;
FI;
FI;
Ё¤ҐЄб-Ёбв®зЁЄ = Ё¤ҐЄб-Ёбв®зЁЄ + IncDec;
Ё¤ҐЄб- § 票п = Ё¤ҐЄб- § 票п + IncDec;
ЋЇЁб ЁҐ
--------
Љ®¬ ¤ CMPS ба ўЁў Ґв Ў ©в, б«®ў® Ё«Ё ¤ў®©®Ґ б«®ў®,
Є®в®а®Ґ гЄ §лў Ґв ॣЁбва Ё¤ҐЄб -Ёбв®зЁЄ , б Ў ©в®¬, б«®ў®¬
Ё«Ё ¤ў®©л¬ б«®ў®¬, Є®в®а®Ґ гЄ §лў Ґв ॣЁбва
Ё¤ҐЄб - § 票п.
…б«Ё ваЁЎгв а §¬Ґа ¤аҐб нв®© Є®¬ ¤л а ўҐ 16 ЎЁв®ў, в® ў
Є зҐб⢥ ॣЁбва®ў Ё¤ҐЄб Ёбв®зЁЄ Ё § зҐЁп ЁбЇ®«м§говбп
ॣЁбвал SI Ё DI; ў Їа®вЁў®¬ б«гз Ґ ЁбЇ®«м§говбп ॣЁбвал ESI Ё
EDI. ЏҐаҐ¤ ўлЇ®«ҐЁҐ¬ Є®¬ ¤л CMPS ў SI Ё DI (Ё«Ё ESI Ё EDI)
¤®«¦л Ўлвм § Јаг¦Ґл Їа ўЁ«млҐ § зҐЁп Ё¤ҐЄб®ў.
‘а ўҐЁҐ ўлЇ®«пҐвбп Ї®б।бвў®¬ ўлзЁв Ёп ®ЇҐа ¤ ,
Ё¤ҐЄбЁа®ў ®Ј® ॣЁбв஬ Ё¤ҐЄб - § 票п, Ё§ ®ЇҐа ¤ ,
Ё¤ҐЄбЁа®ў ®Ј® ॣЁбв஬ Ё¤ҐЄб -Ёбв®зЁЄ .
Ћв¬ҐвЁ¬, зв® Їа ў«ҐЁҐ ўлзЁв Ёп ¤«п Є®¬ ¤л CMPS нв® [SI] -
[DI] Ё«Ё [ESI] - [EDI]. ‹Ґўл© ®ЇҐа ¤ (SI Ё«Ё ESI) пў«пҐвбп
Ёбв®зЁЄ®¬, Їа ўл© ®ЇҐа ¤ (DI Ё«Ё EDI) нв® § 票Ґ. ќв®
Їа ў«ҐЁҐ Їа®вЁў®Ї®«®¦® Їа ў«ҐЁо, ЇаЁп⮬㠯® ®Ўлзл¬
б®Ј« иҐЁп¬ Intel, Ј¤Ґ «Ґўл© ®ЇҐа ¤ пў«пҐвбп § 票Ґ¬,
Їа ўл© - Ёбв®зЁЄ®¬.
ђҐ§г«мв в ўлзЁв Ёп Ґ § ЇЁблў Ґвбп; ® ®ва ¦ Ґвбп в®«мЄ®
Ё§¬ҐҐЁҐ¬ д« Ј®ў. ’ЁЇ ®ЇҐа ¤®ў ®ЇаҐ¤Ґ«пҐв, ба ўЁў овбп «Ё
Ў ©вл, б«®ў Ё«Ё ¤ў®©лҐ б«®ў . „«п ЇҐаў®Ј® ®ЇҐа ¤ (SI Ё«Ё
ESI) ЁбЇ®«м§гҐвбп ॣЁбва DS, Ґб«Ё ®вбгвбвўгҐв Ў ©в
ЇҐаҐ®ЇаҐ¤Ґ«ҐЁп ᥣ¬Ґв . ‚в®а®© ®ЇҐа ¤ (DI Ё«Ё EDI) ¤®«¦Ґ
Ї®§ў®«пвм ¤аҐб жЁо Ё§ ॣЁбва ES; ЇҐаҐ®ЇаҐ¤Ґ«ҐЁҐ ᥣ¬Ґв
Ґў®§¬®¦®.
Џ®б«Ґ в®Ј®, Є Є ба ўҐЁҐ ўлЇ®«Ґ®, Їа®Ёб室Ёв ўв®¬ вЁзҐбЄ®Ґ
Їа®¤ўЁ¦ҐЁҐ ў ॣЁбва е Ё¤ҐЄб Ёбв®зЁЄ Ё Ё¤ҐЄб § 票п.
…б«Ё д« Ј DF а ўҐ 0 (в.Ґ. Ўл« ЁбЇ®«м§®ў Є®¬ ¤ CLD), в®
Їа®Ёб室Ёв ЁЄаҐ¬Ґв нвЁе ॣЁбва®ў; Ґб«Ё ¦Ґ д« Ј DF а ўҐ 1
(Ўл« ўлЇ®«Ґ Є®¬ ¤ STD), в® Їа®Ёб室Ёв ¤ҐЄаҐ¬Ґв ॣЁбва .
ЏаЁ ба ўҐЁЁ Ў ©в®ў ўлЇ®«пҐвбп ЁЄаҐ¬Ґв Ё«Ё ¤ҐЄаҐ¬Ґв 1,
ЇаЁ ба ўҐЁЁ б«®ў 2, ЇаЁ ба ўҐЁЁ ¤ў®©ле б«®ў - 4.
Љ®¬ ¤л CMPSB, CMPSW Ё CMPSD пў«повбп бЁ®Ё¬ ¬Ё Є®¬ ¤л CMPS
lkz ба ўҐЁп Ў ©в®ў, б«®ў Ё ¤ў®©ле б«®ў, ᮮ⢥вб⢥®.
Љ®¬ ¤Ґ CMPS ¬®¦Ґв ЇаҐ¤иҐбвў®ў вм ЇаҐдЁЄб REPE Ё«Ё REPNE ¤«п
Ў«®з®Ј® ба ўҐЁп б ЁбЇ®«м§®ў ЁҐ¬ CX Ё«Ё ECX Ў ©в®ў, б«®ў Ё«Ё
¤ў®©ле б«®ў. Ѓ®«ҐҐ Ї®¤а®Ўго Ёд®а¬ жЁо ®Ў н⮬ б¬. ў ®ЇЁб ЁЁ
Є®¬ ¤л REP.
€§¬ҐпҐ¬лҐ д« ЈЁ
----------------
”« ЈЁ OF, SF, ZF, AF, PF Ё CF гбв ў«Ёў овбп ў ᮮ⢥вбвўЁЁ б
१г«мв ⮬.
€бЄ«озҐЁп § йЁйҐ®Ј® ०Ё¬
----------------------------------
#GP(0) ў б«гз Ґ Ґ¤®ЇгбвЁ¬®Ј® ЁбЇ®«ЁвҐ«м®Ј® ¤аҐб ®ЇҐа ¤
Ї ¬пвЁ ў ᥣ¬Ґв е CS, DS, ES, FS Ё«Ё GS; #SS(0) ў б«гз Ґ
Ґ¤®ЇгбвЁ¬®Ј® ¤аҐб ў ᥣ¬ҐвҐ SS; #PF(Є®¤ бЎ®п) ў б«гз Ґ
бва Ёз®Ј® бЎ®п; #AC ¤«п Ґўла ўҐ®© ббл«ЄЁ Є Ї ¬пвЁ ЇаЁ
⥪г饬 га®ўҐ ЇаЁўЁ«ҐЈЁа®ў ®бвЁ, а ў®¬ 3.
€бЄ«о票п ०Ё¬ ॠ«мле ¤аҐб®ў
---------------------------------------
ЏаҐалў ЁҐ 13, Ґб«Ё Є Є п-«ЁЎ® з бвм ®ЇҐа ¤ «Ґ¦Ёв ўҐ
Їа®бва бвў ЁбЇ®«ЁвҐ«мле ¤аҐб®ў ®в 0 ¤® 0FFFFH.
€бЄ«озҐЁп ўЁавг «м®Ј® ०Ё¬ 8086
----------------------------------------
’Ґ ¦Ґ ЁбЄ«о票п, зв® Ё ¤«п ०Ё¬ ॠ«мле ¤аҐб®ў: #PF (Є®¤
бЎ®п) ¤«п бва Ёзле бЎ®Ґў; #AC ¤«п Ґўла ўҐ®© ббл«ЄЁ Є
Ї ¬пвЁ ЇаЁ ⥪г饬 га®ўҐ ЇаЁўЁ«ҐЈЁа®ў ®бвЁ, а ў®¬ 3.
CMPXCHG - ‘а ўҐЁҐ Ё ®Ў¬Ґ
-----------------------------------------------------------------
|Љ®¤ Љ®¬ ¤ —Ёб«® ЋЇЁб ЁҐ |
|®ЇҐа жЁЁ в Єв®ўле |
| жЁЄ«®ў |
| |
|0F A6/r CMPXCHG r/m8,r8 6/7, Ґб«Ё ба ў- ‘а ўҐЁҐ AL б Ў ©в®¬ |
| ҐЁҐ гбЇҐи®, r/m. ЏаЁ а ўҐб⢥ гб- |
| Ё 6/10 Ё зҐ в ў«Ёў Ґв ZF Ё § Јаг-|
| ¦ Ґв Ў ©в ॣЁбва ў |
| Ў ©в r/m. € зҐ ®зЁй Ґв|
| ZF Ё § Јаг¦ Ґв Ў ©в r/m|
| ў AL |
|0F A7/r CMPXCHG 6/7, Ґб«Ё ба ў- ‘а ўҐЁҐ AL б® б«®ў®¬ |
| r/m16,r16 ҐЁҐ гбЇҐи®, r/m. ЏаЁ а ўҐб⢥ гб- |
| Ё 6/10 Ё зҐ в ў«Ёў Ґв ZF Ё § Јаг-|
| ¦ Ґв ॣЁбва-б«®ў® ў |
| б«®ў® r/m. € зҐ ®зЁй Ґв|
| ZF Ё § Јаг¦ Ґв б«®ў® r/m|
| ў AX |
|0F A7/r CMPXCHG 6/7, Ґб«Ё ба ў- ‘а ўҐЁҐ AL б ¤ў®©л¬ |
| r/m32,r32 ҐЁҐ гбЇҐи®, б«®ў®¬ r/m. ЏаЁ а ўҐб-|
| Ё 6/10 Ё зҐ вўҐ гбв -в ZF Ё § Јаг-|
| ¦ Ґв ॣЁбва-¤ў®©®Ґ |
| б«®ў® r/m. € зҐ ®зЁй Ґв|
| ZF Ё § Јаг¦ Ґв ¤ў®©®Ґ |
| б«®ў® r/m ў EAX. |
-----------------------------------------------------------------
ђ Ў®в Є®¬ ¤л
--------------
IF ЄЄг¬г«пв®а = DEST
ZF <- 1
DEST <- SRC
ELSE
ZF <- 0
ЄЄг¬г«пв®а <- DEST
ЋЇЁб ЁҐ
--------
Љ®¬ ¤ CMPXCHG ба ўЁў Ґв ЄЄг¬г«пв®а (ॣЁбва AL, AX Ё«Ё EAX)
б DEST. …б«Ё ®Ё а ўл, в® SRC § Јаг¦ Ґвбп ў DEST. ‚ Їа®вЁў®¬
б«гз Ґ DEST § Јаг¦ Ґвбп ў ЄЄг¬г«пв®а.
€§¬ҐпҐ¬лҐ д« ЈЁ
----------------
”« ЈЁ CF, PF, AF, SF Ё OF Ё§¬Ґповбп в ЄЁ¬ ®Ўа §®¬, Є Є Ґб«Ё Ўл
Ўл« ўлЇ®«Ґ Є®¬ ¤ CMP б DEST Ё ЄЄг¬г«пв®а®¬ ў Є зҐб⢥
®ЇҐа ¤®ў. ”« Ј ZF гбв ў«Ёў Ґвбп, Ґб«Ё ®ЇҐа ¤ § зҐЁп Ё
ЄЄг¬г«пв®а а ўл; ў Їа®вЁў®¬ б«гз Ґ ® ®зЁй Ґвбп.
€бЄ«озҐЁп § йЁйҐ®Ј® ०Ё¬
----------------------------------
#GP(0), Ґб«Ё १г«мв в ¤®«¦Ґ Ї®¬Ґй вмбп ў ᥣ¬Ґв, ¤«п Є®в®а®Ј®
§ ЇаҐйҐ § ЇЁбм; #GP(0) ў б«гз Ґ Ґ¤®ЇгбвЁ¬®Ј® ЁбЇ®«ЁвҐ«м®Ј®
¤аҐб ®ЇҐа ¤ Ї ¬пвЁ ў ᥣ¬Ґв е CS, DS, ES, FS Ё«Ё GS; #SS(0)
ў б«гз Ґ Ґ¤®ЇгбвЁ¬®Ј® ¤аҐб ў ᥣ¬ҐвҐ SS; #PF(Є®¤ бЎ®п) ў
б«гз Ґ бва Ёз®Ј® бЎ®п; #AC ¤«п Ґўла ўҐ®© ббл«ЄЁ Є Ї ¬пвЁ
ЇаЁ ⥪г饬 га®ўҐ ЇаЁўЁ«ҐЈЁа®ў ®бвЁ, а ў®¬ 3.
€бЄ«о票п ०Ё¬ ॠ«мле ¤аҐб®ў
---------------------------------------
ЏаҐалў ЁҐ 13, Ґб«Ё Є Є п-«ЁЎ® з бвм ®ЇҐа ¤ «Ґ¦Ёв ўҐ
Їа®бва бвў ЁбЇ®«ЁвҐ«мле ¤аҐб®ў ®в 0 ¤® 0FFFFH.
€бЄ«озҐЁп ўЁавг «м®Ј® ०Ё¬ 8086
----------------------------------------
’Ґ ¦Ґ ЁбЄ«о票п, зв® Ё ¤«п ०Ё¬ ॠ«мле ¤аҐб®ў: #PF (Є®¤
бЎ®п) ¤«п бва Ёзле бЎ®Ґў; #AC ¤«п Ґўла ўҐ®© ббл«ЄЁ Є
Ї ¬пвЁ ЇаЁ ⥪г饬 га®ўҐ ЇаЁўЁ«ҐЈЁа®ў ®бвЁ, а ў®¬ 3.
ЏаЁ¬Ґз Ёп
----------
ќв Є®¬ ¤ ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў вмбп б ЇаҐдЁЄб®¬ LOCK. „«п
гЇа®йҐЁп ЁвҐа䥩б б иЁ®© Їа®жҐбб®а ®ЇҐа ¤ § 票п
ЇаЁЁ¬ Ґв жЁЄ« § ЇЁбЁ ЎҐ§®в®бЁвҐ«м® Є १г«мв вг ба ўҐЁп.
…б«Ё ба ўҐЁҐ § Є®зЁ«®бм Ґг¤ з®, в® DEST § ЇЁблў Ґвбп § ¤,
ў Їа®вЁў®¬ б«гз Ґ ў ®ЇҐа ¤ § зҐЁп § ЇЁблў Ґвбп DEST.
(Џа®жҐбб®а ЁЄ®Ј¤ Ґ ўл¤ Ґв жЁЄ« з⥨п б § еў в®¬ ЎҐ§
ᮮ⢥вбвўго饩 § ЇЁбЁ б § еў в®¬). ќв Є®¬ ¤ Їа®жҐбб®а ¬Ё 386
Ґ Ї®¤¤Ґа¦Ёў Ґвбп. €бЇ®«м§®ў ЁҐ Є®¬ ¤л CMPXCHG б®ў¬ҐбвЁ¬л¬ б
386 ®Ўа §®¬ б¬. ў а §¤Ґ«Ґ 3.11.
-----------------------------------------------------------------
Соседние файлы в папке I486