OSDev Wiki
Advertisement

Выпуск каждого нового микропроцессора сопровождался, помимо внутренних усовершенствований, расширением системы команд и другими улучшениями. В этом разделе даются краткие сведения о нововведениях в процессорах разных моделей.

Базовой для всех микропроцессоров архитектуры IA-32 остаётся система команд 16-разрядного микропроцессора 8086.

В микропроцессоре 80186 были добавлены инструкции ENTER, LEAVE, PUSHA, POPA, BOUND, UD2, INS и OUTS. Кроме того, расширились возможности команд PUSH, IMUL и сдвигов: они получили возможность использовать непосредственные операнды.

В микропроцессоре 80286 появился защищённый режим; единственный режим работы более ранних процессоров получил название реального. Физический адрес был расширен до 24 бит. Появилось слово состояния машины — регистр MSW, отвечавший за переключение в защищённый режим (позднее этот регистр стал младшей частью управляющего регистра CR0). Возможности вернуться из защищённого режима в реальный предусмотрено не было.

Микропроцессор 80386 стал родоначальником архитектуры IA-32. В дополнение к 16-разрядному защищённому режиму, реализованному в микропроцессоре 80286, был введён 32-разрядный защищённый режим; кроме того, появилась возможность страничной организации памяти. Регистры общего назначения, регистр флагов и указатель инструкции, а также физический адрес были расширены до 32 разрядов; появились 32-разрядные управляющие регистры. Для переключения размера адресов и операндов прямо в программе были введены специальные префиксы; гибкость системы команд существенно увеличилась путём добавления в код команды байта SIB, благодаря которому появилась возможность использовать в качестве компонентов адреса содержимое любого из регистров общего назначения, а также аппаратно масштабировать индекс.

Advertisement