Как стать автором
Обновить

Комментарии 20

Команда CPUID появилась далеко не сразу, а до этого программно процессоры различали благодаря различным «особенностям», они всегда были :)
Да, это так, но вот информации об использовании AF и PF при умножении/делении я нигде не встречал.
Впервые об этом задумался, будучи студентом, тогда похожую программу тестировал на 8086 и 80286, но к сожалению все те результаты утеряны.

Интересно, сейчас это имеет смысл?) Могут, например, нечестные хостеры, подделывать cpuid, чтобы виртуалки на старых камнях продавать за бОльшую цену?

Если хватит терпения и времени(ну и будет желание в переписывании кода) могу прогнать это на 80286 Harris/AMD/Intel (именно 286 от разных производителей)
Отлично!!!
Выложил переписанный вариант на BCC под DOS
cloud.mail.ru/public/Gs5a/ihnqKbhsv
FLAGS.EXE
Для Windows 7 и 10 выложил Flags32.exe
Интересно. Почитаем…
Насколько я помню, 80286 в реальном режиме отличали от 8086 по поведению команды PUSH SP. На более старых процессорах сначала смещался SP, потом записывался результат, а на 80286 — наоборот, состояние SP фиксировалось, потом он уменьшался, и туда записывался результат.
Было еще отличие по длине конвейера команд. У 8086 длина конвейера 8 байт, если от текущей команды+9 байт изменить команду, то 8086 выполнял измененную команду, а 286 — старую.
По длине конвеера отличали 8086 от 8088. Там это почти единственный способ был.

А 80286 от 8086 проще всего через push sp, да.
А почему нет инициализации флагов в начальное состояние?

Без этого нет учета вариантов «не меняет флаги» и «поведение зависит от других флагов».
Делал такую проверку (вводил команду суммирования как с установкой обоих флагов, так и со сбрасыванием). Результат не меняется. Поэтому в итоговом тесте решил это не включать (иначе объем выходных данных удваивается, а смысла в этом нет).
Добавил результаты AMD 386DX-40.
Результат отличается от современных процессоров, но пока особо сравнивать не с чем.
Добавил результаты Intel 386SX-33.
Поведение совпадает с AMD 386DX-40.
Добавлены Core 2 Duo E6300, Core 2 Duo E6550, Core i7-2600, Pentium 4 640 Prescott 775, Pentium 4 478 (Northwood) и Pentium E5200.
Добавил результаты Xeon X5650.
Огромное спасибо OrtoXylene за предоставленные результаты!
«О, сколько нам открытий чудных
Готовят просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, Бог изобретатель...»

Еще один довод собрать ретромашинку, и внести свой вклад в исследование.
А что это даёт, это сравнение?
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории