Аппаратное обеспечение персонального компьютера

       

основан на том факте,


Способ распознавания процессоров Intel 8086/ 8088 основан на том факте, что биты 12-15 регистра FLAGS всегда установлены в единицу.

Прежде всего программа записывает текущее содержимое регистра FLAGS в регистр AX. Для этого используется стек:

pushf

pop ax

Первоначальное содержимое регистра FLAGS сохраняется в регистре CX:

mov cx, ax

Далее программа пытается записать нулевые значения в биты 12-15 регистра FLAGS:

and ax, 0fffh

push ax

popf

Теперь нужно проверить, изменилось ли содержимое указанных битов регистра FLAGS. Для этого новое содержимое регистра FLAGS записывается через стек в регистр AX, а затем, после наложения маски 0f000h, сравнивается со значением 0f000h:

pushf

pop ax

and ax, 0f000h

cmp ax, 0f000h

je is_8086

Если биты 12-15 остались установленными в единичное значение, программа работает на процессоре Intel 8086/8088, если нет – в компьютере установлена более старшая модель процессора.


Содержание раздела