При включении питания может быть запрошено автотестирование. Запрос автотестирования выполняется через вход AHOLD по заднему фронту сигнала RESET. Ответственность за запрос автотестирования лежит на разработчике аппаратного обеспечения системы. При выборе автотестирования оно занимает до 2**20 тактовых периодов. (Intel оставляет за собой право изменять число тактовых периодов автотестирования без предупреждения).
Если процессор i486 прошел тест нормально, то регистр EAX очищается. Ненулевое значение регистра EAX после завершения автотестирования указывает на неисправность процессора. Если автотестирование не запрашивалось, содержимое регистра EAX после инициализации сброса является неопределенным (возможно, не-нулевым). Регистр DX после инициализации сброса содержит идентификатор типа процессора и номер версии процессора, как показано на Рисунке 10-1. Регистр DH содержит число 4, идентифицирующее процессор i486. Регистр DL содержит уникальный идентификатор номера версии.
Состояние регистра CR0 после включения питания показано на Рисунке 10-2. Это состояние устанавливает процессор в режим реальной адресации памяти с отключенным механизмом подкачки страниц.
После включения питания состояния регистров EBX, ECX, ESI, EDI, EBP, ESP, GDTR, LDTR, TR, отладочных регистров (кроме DR7) и стека для операндов с плавающей точкой неопределены. Программное обеспечение не должно зависеть от неопределенности каких-либо из этих регистров. Состояния флагов и остальных регистров после включения питания показаны в Таблице 10-1.
|<---------------------- Регистр EDX ------------------------->| |<------ Регистр DX ------------>|31 16 15 8 7-----------------------------------------------------------------| | Идентификатор | Номер || Резервировано | устройства | версии || | | процессора |----------------------------------------------------------------- Рисунок 10-1. Содержимое регистра EDX после сброса --------0 Разрешена -------0 Контроль выравнивания отменен | подкачка | | страниц | --0 Защита от записи отменена | -----0 Разрешено | | | | кеширование | | | | --0 Разрешена | | | | | запись | | 31 30 28 18 16 5 4 3 2 1 0-----------------------------------------------------------------| P| C| N| | A| | W| | N| E| T| E| M| P|| | | | | | | | | | | | | | || G| D| W| | | | P| | E| T| S| M| P| E|----------------------------------------------------------------- | | | | | |0 Внешнее сообщение об ошибке с плавающей точкой | | | | | 0 (не используется)--- | | | | 0 Нет переключения задачи ----- | | | 0 Команда ESC не обнаруживается ловушкой--------- | | 0 Команда WAIT не обнаруживается ловушкой------------ | 0 Реальный режим--------------- Рисунок 10-2. Содержимое регистра CR0 после сброса`1.2
Отметим, что невидимые части сегментных регистров CS и DS инициализируются значениями, позволяющими начать выполнение, несмотря на то, что эти сегменты не были определены. Базовый адрес кодового сегмента устанавливается на 64К ниже вершины физического адресного пространства, что позволяет записать в оперативную память программное обеспечение инициализации. Базовый адрес сегментов данных устанавливается в нижней части физического адресного пространства (адрес 0), где начинается оперативная память. Для предохранения этих адресов никакая команда, загружающая сегментные регистры, не должна выполняться до тех пор, пока не будет определена таблица дескрипторов, а ее базовый адрес и граница загружены в регистр GDTR. Если в реальном режиме произойдет перезагрузка CS, то этот регистр будет указывать на младший мегабайт физической памяти.