| ESC |
| Инструкция на копроцесор |
| Общи форми: |
ESC index, w |
| Форма |
КОП |
CPUID |
I8086 |
I80386 |
I80486 |
| 16 |
32 |
64 |
Alt |
|
I8086 |
I80386 |
I80486 |
| ESC index, w |
D8 + index /i |
D8 + index /i |
D8 + index /i |
F5 |
|
2/12+EA |
*** |
*** |
|
| Действие |
Изчислява адреса |
| Флагове |
| PE |
VM |
NT |
IOPL |
OF |
DF |
IF |
TF |
SF |
ZF |
AF |
PF |
CF |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| CPU |
| 8086 |
186 |
V20 |
286 |
386 |
486 |
P |
P-P |
P-II |
MMX |
SSE |
3D! |
E64 |
| • |
• |
• |
• |
• |
• |
• |
• |
• |
• |
|
|
• |
Инструкциите с опкодове D8-DF имат различна семантика при I8086, V20 и I80186 (първо поколение) от една страна, I80286, I80386 и I80486SX (второ поколение) от друга и трето поколение.
- За процесорите от първо поколение, това е наистина излизане (escape). След като декодира инструкция ESC, процесорът инициира цикъл за четене по системната шина (ако е възможно, т.е. адресният байт в инструкцията не кодира регистър). Външна схема – копроцесор – подслушва шината и разпознава инструкция ESC, а от следващия цикъл по шината прихваща и адреса на операнда. След което започва да изпълнява инструкция. Така става възможна паралелната работа на два процесора и произволното смесване на код за двата.
Нищо в тази схема не предполага и не налага вторият процесор да е математическия копроцесор I8087, нито пък ограничава броя на копроцесорите до само един. Организацията на самия I8087 обаче не позволява в системата да има втори копроцесор, тъй като I8087 използва всичките 6 или 11 недефинирани от централния процесор бита за кодиране на инструкции. (За да може в системата да има втори, трети и т.н. копроцесор, трябва всеки от тях да има идентификатор, напр. битове 0..3 на инструкционния байт или 3..5 на адресния байт.)
Исторически никога не е бил разработван друг копроцесор освен математическия I8087, така че разрушаването на тази схема в следващите поколения е логично.
- Процесорите от второ поколение (I80286, I80386) реализират виртуална памет и защита на паметта от нерегламентиран достъп. В такава среда централният процесор не може повече да позволява на копроцесор директен достъп до неговата памет, тъй като това би нарушило принципите на защитата. Затова всички обръщения към оперативната памет се извършват от централния процесор по заявка от копроцесора. По този начин интеграцията между двете системи се засилва.
Тази схема също не налага използваният копроцесор да е I80287, нито пък да е само един. Ограничението отново идва от самия I80287.
- I80486 интегрира математическия копроцесор в един корпус с главния процесор. При Pentium схемите на математическия копроцесор вече са част от ядрото на главния и повече не може да се говори за система процесор/копроцесор. Инструкциите ESC са твърдо обвързани със системата от инструкции на процесора и изграждане на система с копроцесор, чиито инструкции да се вграждат в потока от инструкции на главния процесор е вече невъзможно.
|
| Изключения |
ОБЩИ +
| Всички режими |
| #NM |
CR0.TS = 1 или CR0.ЕМ=1 |
| #MF |
FPU сигнализира грешка |
| #FC |
Началото и краят на операнда са в границите на сегмента, но средата му – не. Това изключение се генерира само от I80286 и I80386. |
| #GP(0) |
Началото и краят на операнда са в границите на сегмента, но средата му – не. Това изключение се генерира I80486+ вместо #FC. |
|