Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 283
от 10.11.2005, 18:12

Администратор:Калашников О.А.
В рассылке:Подписчиков: 268, Экспертов: 25
В номере:Вопросов: 2, Ответов: 4


Вопрос № 28916: Ответьте пожалуйста на такой тупой вопрос: У меня 2ве операционки Win XP и ради эксперимента Win 98, пишу такую вещь: .... .... mov ax,4F02h mov bx,0101h ;режим 640х480*256 int 10h .... ....работает и в вин98, и ...
Вопрос № 28941: Привет всем! Подскажите плз. как программно определить какие инструкции поддерживает процессор - MMX, SSE, SSE1, SSE2? Спасибо за ответы....

Вопрос № 28.916
Ответьте пожалуйста на такой тупой вопрос:

У меня 2ве операционки Win XP и ради эксперимента Win 98, пишу такую вещь:
....
....
mov ax,4F02h
mov bx,0101h ;режим 640х480*256
int 10h
....
....работает и в вин98, и в винХП

стоит написать
...
....
mov ax,4F02h
mov bx,0103h ;режим 800х600*256 или даже выше
int 10h
....
....в XP-шнике уже не работает, а в 98-ой винде всё без проблем
Можете объяснить почему так?

Отправлен: 04.11.2005, 18:32
Вопрос задал: Петров Максим Викторович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Петров Максим Викторович!
настроить нужно эмуляцию ДОС.

а вообще-то используй Direct X.
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 04.11.2005, 18:42


Вопрос № 28.941
Привет всем!
Подскажите плз. как программно определить
какие инструкции поддерживает процессор -
MMX, SSE, SSE1, SSE2?
Спасибо за ответы.
Отправлен: 05.11.2005, 11:05
Вопрос задал: 1 (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, 1!
для этого есть CPUID флаги SSE, SSE2 (25 and 26).

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 05.11.2005, 11:17
Оценка за ответ: 5
Комментарий оценки:
Краткость как говориться - сестра таланта.
Спасибо.

Отвечает: Юра Устинов
Здравствуйте, 1!
Команда:
CPUID
Назначение:
Идентификация процессора
Процессор:
80486
CPUID сообщает информацию о производителе, типе и модификации процессора, о наличии и поддержке различных расширений. Команда CPUID поддерживается Intel, начиная с процессоров Intel 80486DX/SX/DX2 SL, UMC U5S, Cyrix M1, AMD 80486DX4. Чтобы проверить, поддерживает ли процессор эту команду, попробуйте установить флаг ID в 1 (бит 21 в регистре EFLAGS) — если это получается, значит, команда CPUID поддерживается.
Результат работы CPUID зависит от значения регистра ЕАХ. Если ЕАХ = 0, CPUID возвращает в ЕАХ максимальное значение, с которым ее можно вызывать (2 для Р6, 1 для Р5), а регистры EBX:ECX:EDX содержат 12-байтную строку — идентификатор производителя (табл. 8).
Производитель Строка в ЕВХ:ЕСХ:ЕРХ
Intel GenuineIntel
UMC UMC UMC UMC
Cyrix CyrixInstead
AMD AuthenticAMD
NexGen NexGenDriven
Centaur Technology CentaurHalls
Например, для процессоров Intel регистр ЕВХ содержит «Genu» (756E6547h), ЕСХ содержит «ineI» (49656E69h), a EDX — «ntel» (6C65746Eh).
Если ЕАХ = 1, CPUID возвращает в ЕАХ информацию о версии процессора, а в EDX — информацию о поддерживаемых расширениях. Многие понятия в этом описании относятся к работе процессора в защищенном режиме и рассмотрены ниже.
Биты 3 – 0 ЕАХ — Модификация.
Биты 7 – 4 ЕАХ — Модель.
Биты 11 – 8 ЕАХ — Семейство (3 для 386, 4 для 486, 5 для Pentium, 6 для Pentium Pro).
Биты 13 – 12 ЕАХ — Тип (0 — OEM, 1 — Overdrive, 2 — Dual).
Биты 31 – 14 ЕАХ зарезервированы и равны нулю.
Бит 0 EDX — «FPU» Процессор содержит FPU и может выполнять весь набор команд 80387.
Бит 1 EDX — «VME» Процессор поддерживает усовершенствованный режим V86 (флаги VIF и VIP в EFLAGS, биты VME и PVI в CRO).
Бит 2 EDX — «DE» Процессор поддерживает точки останова по вводу/выводу, бит DE в CR0.
Бит 3 EDX — «PSE» Процессор поддерживает страницы до 4 Мб, бит PSE в CR4, модифицированные биты в элементах списков страниц (РDЕ) и таблиц страниц (РТЕ).
Бит 4 EDX — «TSC» Процессор поддерживает команду RDTSC и бит TSC в CR4.
Бит 5 EDX — «MSR» Процессор поддерживает команды RDMSR и WRMSR и машинно-специфичные регистры, совместимые с Pentium.
Бит 6 EDX — «РАЕ» Процессор поддерживает физические адреса больше 32 бит, дополнительный уровень в таблицах трансляции страниц, страницы по 2 Мб и бит РАЕ в CR4. Число бит для физических адресов зависит от модели процессора. Так, Pentium Pro поддерживает 36 бит.
Бит 6 EDX — «РТЕ» (только для Cyrix).
Бит 7 EDX — «МСЕ» Процессор поддерживает бит МСЕ в CR4.
Бит 8 EDX — «СХ8» Процессор поддерживает команду CMPXCHG8B.
Бит 9 EDX — «APIC» Процессор содержит встроенный контроллер прерываний (APIC), и он активирован и доступен.
Бит 9 EDX — «PGE» (только для AMD).
Бит 10 EDX зарезервирован.
Бит 11 EDX — «SEP» Процессор поддерживает быстрые системные вызовы, команды SYSENTER и SYSEXIT (Pentium II).
Бит 12 EDX — «MTRR» Процессор поддерживает машинно-специфичные регистры MTRR.
Бит 13 EDX — «PGE» Процессор поддерживает бит PGE в CR4 и глобальные флаги в PTDE и РТЕ, указывающие элементы TLB, которые принадлежат сразу нескольким задачам.
Бит 14 EDX — «МСА» Процессор поддерживает машинно-специфичный регистр MCG_CAP.
Бит 15 EDX — «CMOV» Процессор поддерживает команды CMOVcc и (если бит 0 EDX установлен) FCMOVcc (Pentium Pro).
Бит 16 EDX — «PAT» Процессор поддерживает таблицу атрибутов страниц.
Биты 17 – 22 зарезервированы.
Бит 23 EDX — «ММХ» Процессор поддерживает набор команд ММХ.
Бит 24 EDX — «FXSR» Процессор поддерживает команды быстрого чтения/записи (ММХ2).
Биты 31 – 25 EDX зарезервированы.
Если ЕАХ = 2, CPUID на процессорах семейства Р6 возвращает в регистрах ЕАХ, ЕВХ, ЕСХ и EDX информацию о кэшах и TLB. Самый младший байт ЕАХ (регистр AL) указывает, сколько раз надо вызвать CPUID с ЕАХ = 2, чтобы получить информацию обо всех кэшах (1 для Pentium Pro и Pentium II). Самый старший бит (бит 31) каждого регистра указывает, содержит ли этот регистр правильную информацию (бит 31 = 0) или он зарезервирован (бит 31 = 1). В первом случае регистр содержит информацию в 1-байтных дескрипторах со следующими значениями:
<У нас ограничение в 6000 символов поэтому про кэш сам добывай>
Совместимые с Intel процессоры AMD и Cyrix поддерживают вызов «расширенных функций» CPUID со значениями ЕАХ, в которых самый старший бит всегда установлен в 1.
ЕАХ = 80000000h: Возвращает в ЕАХ максимальный номер расширенной функции CPUID, поддерживаемой данным процессором.
ЕАХ = 80000001h: Возвращает в ЕАХ 051Xh для AMD K5 (X — номер модификации) или 061Хh для AMD К6. В EDX эта функция возвращает информацию о поддерживаемых расширениях (указаны только флаги, отличающиеся от CPUID с ЕАХ = 1).
Бит 5 EDX «MSR» — Процессор поддерживает машинно-специфичные регистры, совместимые с К5.
Бит 10 EDX — Процессор поддерживает команды SYSCALL и SYSRET.
Бит 16 EDX — Процессор поддерживает команды FCMOVcc.
Бит 24 EDX — Процессор поддерживает ММХ с расширениями от Cyrix.
Бит 25 EDX — Процессор поддерживает набор команд AMD 3D.
ЕАХ = 80000002h, 80000003h и 80000004h — последовательный вызов CPUID с этими значениями в ЕАХ возвращает в EAX:EBX:ECX:EDX последовательно четыре 16-байтные части строки — имени процессора. Например: «AMD-K5(tm) Processor».
ЕАХ = 80000005h — Команда возвращает информацию о TLB в регистре ЕВХ (старшее слово — TLB данных, младшее слово — TLB команд, старший байт — ассоциативность, младший байт — число элементов), о кэше данных в регистре ЕСХ и о кэше команд в регистре EDX (биты 31 – 24 — размер в килобайтах, биты 23 – 16 — ассоциативность, биты 15 – 8 — число линий на тэг, биты 7 – 0 — число байт на линию.
Удачи!!!
---------
Спасём Россию!!!
Ответ отправил: Юра Устинов (статус: 4-ый класс)
Отправлен: 05.11.2005, 11:57
Оценка за ответ: 5
Комментарий оценки:
Спасибо конечно за столь подробный ответ,
но где же найти бит поддержки SSE?

Отвечает: Лысков Игорь Витальевич
Здравствуйте, 1!
Об использовании CPUID почитай ftp://download.intel.com/support/processors/procid/24161815.pdf
Особо обрати внимание на ответ в регистре EDX(таблица 5) при EAX=1
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: 8-ой класс)
Отправлен: 05.11.2005, 12:30
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ссылку!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100 hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=314124&im=101&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("HotLog")

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Архив рассылки
Отписаться
Вспомнить пароль

В избранное