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

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


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

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

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

Выпуск № 169
от 26.06.2005, 02:10

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 3


Вопрос № 22446: Здравствуйте! Просвятите новичка... Как я понимаю, в процессе эволюции процессоров Intel в них добавлялись новые команды(MMX, SSE). Где они вообще используются? Пусть в программе есть эти инструкции. Тогда, если у меня не новый процессор, то...

Вопрос № 22.446
Здравствуйте! Просвятите новичка...
Как я понимаю, в процессе эволюции процессоров Intel в них добавлялись новые команды(MMX, SSE). Где они вообще используются?
Пусть в программе есть эти инструкции. Тогда, если у меня не новый процессор, то запуск такой программы невозможен? Или все программы компилятся в режиме совместимости со старыми процессорами(тогда зачем новые команды нужны)?
Отправлен: 21.06.2005, 02:01
Вопрос задал: seerix (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Евгений Иванов
Здравствуйте, Seerix!
При запуске своей программы ты должен следить за средой, в которой всё это будет выполняться. Есть команды - CPUID. Есть регистры MSR. В них содержится (или в том, что они возвращают) описание процессора и поддерживаемые функции/команды.
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 21.06.2005, 06:55
Оценка за ответ: 5

Отвечает: Калашников О.А.
Здравствуйте, Seerix!
Команды MMX и SSE используются для потоковой обработки данных (музыка, видео).
Если Вы пишите на чистом Ассемблере, используя команды MMX и SSE, а запускаете эту программу на старых моделях, то, естественно, эта программа работать не будет.
Чтобы этого избежать, обычно писали две ветки: для MMX / SSE и без них, а сразу после загрузки программы, проверялся тип процессора.
Но в настоящий момент это уже не актуально, т.к. все современные машины, начиная с Pentium-II и III поддерживают эти инструкции.
---------
Всё отлично!!!
Ответ отправил: Калашников О.А. (статус: *Админ)
Отправлен: 21.06.2005, 10:26
Оценка за ответ: 5

Отвечает: John Freeman
Здравствуйте, Seerix!
1) Да, а ещё 3DNow! 3 уровня от AMD, да и SSE много, впрочем как и MMX 2 уровня
2) Точно, невозможен
3) Делают либо несколько exe(Quake2 например), либо обход(самое верное - программа смотрит что за процессор и пускает нужные участки кода, делается элементарно на asm вставках)(пример - Quake3), либо Dynamic Compilation , что то же самое, но код не присутствует , а компилируется(пример - VirtualDub)
4) Всё это фигня, если твой компилятор поддерживает MMX,SSE... , то это не значит что он это эффективно использует, все участки под MMX и выше профессионалы пишут на асме, тогда эффективность наибольшая.
---------
Жить - начертал на знамени я, жить под солнцем всегда побеждая! Кожа моя - одна броня, из стали броня другая.
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 21.06.2005, 13:55
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


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

В избранное