Какова реальная разница между типами команд x86 и с плавающей точкой? - PullRequest
0 голосов
/ 24 ноября 2011

Существует два основных типа инструкций микропроцессора: целочисленные и с плавающей точкой.

Соответственно, они выполняются на целочисленном процессоре и на процессоре с плавающей запятой. Это имеет смысл, верно?

Но что говорит процессору отправить инструкцию в IPU или FPU? Откуда он знает, какая инструкция какого типа?

Может быть, в инструкции есть бит / флаг / LUT или что-то, что отличает одно от другого?

1 Ответ

2 голосов
/ 24 ноября 2011

Каждая инструкция процессора имеет код операции .Процессор просматривает код операции, чтобы определить, к какому исполнительному модулю должна быть отправлена ​​инструкция.Для команд с плавающей запятой на x86 код операции обычно начинается с 1101 1...., т. Е. Первая шестнадцатеричная цифра равна D, а затем устанавливается бит MS следующей цифры.Например, FADD (с плавающей запятой) начинается с D8 или DC, в зависимости от того, какие аргументы следуют.Напротив, код операции для целочисленной инструкции ADD обычно начинается с x000 0... (x может быть 0 или 1), то есть первая цифра 0 или 8, а вторая цифра имеет свойMS немного ясно.В зависимости от аргументов это могут быть 01, 02, 03, 04, 05, 80, 81 или 83.

...