Набор команд х86, имеет следующую особенность - он ориентирован на работу с целыми числами. Как быть, если процессору нужно извлечь квадратный корень, найти синус или логарифм? Естественно, что процессор может справиться с такой задачей, но, учитывая то, что он ориентирован на вычисления с целыми числами, выполнение такой операции займет у него много тактов.
В то же время Intel для все своих процессоров разрабатывает так называемый сопроцессор - кристалл, который тоже умеет выполнять команды, но не х86, а другие, и поддерживаемый сопроцессором набор команд (называемый х87) ориентирован на работу с числами с плавающей запятой, таким образом, он (сопроцессор) перечисленные выше задачи как раз и призван решать. На заре развития PC считалось, что сопроцессор нужен небольшому количеству пользователей (действительно, зачем пользователю текстового редактора математические вычисления) и устанавливался в систему дополнительно; при желании пользователь мог отдельно приобрести сопроцессор и установить его в специальное гнездо на материнской плате. Сегодня ситуация полностью изменилась. Сегодня сопроцессор нужен абсолютно всем пользователям: "в наш век мультимедиа" когда компьютер все больше и больше способен обрабатывать реалистичную 3-х мерную графику, математические расчеты становятся неотъемлемым атрибутом любого мультимедиа приложения (например, современной игры). Поэтому достаточно давно сопроцессор стали устанавливать вместе с процессором на один кристалл. Действительно, раз сопроцессор все равно нужен всем пользователям, то его разумно встроить в процессор, а не изготавливать отдельно: разумеется, это будет дешевле.
Таким образом, современный процессор поддерживает два основных набора команд: х86 и х87. Могут ли производители процессоров отказаться от этих наборов команд? Нет! Тогда получившаяся система уже не будет программно совместима с PC, так как программное обеспечение, написанное для PC на таком процессоре, уже не будет работать! Поддержка этих двух наборов команд - залог программной совместимости. А могут ли производители процессоров создавать и добавлять в процессор новые наборы команд? Конечно. Но что нужно для того, чтобы программы стали работать эффективнее на процессоре с новым набором команд? Будет ли у старого приложения, которое проектировали еще до разработки нового набора команд какие-то преимущества от исполнения на процессоре с новым набором команд? Нет! Ведь программа - это не что иное, как последовательность команд процессору. Если в программе нет ни одной новой команды (а откуда ей там взяться, если в момент написания программы новых команд еще не придумали), то естественно никакой пользы из того, что процессор может исполнять новые команды, старое приложение не извлечет. Поэтому, когда в процессор добавляют новый набор команд, нужно понимать, что пока разработчики программного обеспечения не начнут писать программы с учетом нового набора команд НИКАКОЙ пользы от него не будет. А старым программам от нового набора команд уже никогда не будет пользы (разве что авторы перепишут старую программу с учетом нового набора команд).