Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Определение поддержки SSE

Delphi , ОС и Железо , Процессор

Определение поддержки SSE

Автор: Gua
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Определение поддержки SSE

Зависимости: Types
Автор:       Gua, gua@ukr.net, ICQ:141585495, Simferopol
Copyright:   Unknown
Дата:        17 июля 2002 г.
***************************************************** }

function CheckSSE: Boolean;
var
  TempCheck: dword;
begin
  TempCheck := 1;
  asm
  push ebx
  mov eax,1
  db $0F,$A2
  test edx,$2000000
  jz @NOSSE
  mov edx,0
  mov TempCheck,edx
  @NOSSE:
  pop ebx
  end;
  CheckSSE := (TempCheck = 0);
end;

Here's a translation of the Delphi function into Russian:

Функция CheckSSE объявлена с типом возвращаемого значения Boolean, что означает, что она будет возвращать либо True, либо False.

Местная переменная TempCheck типа dword (32-разрядное целое число) была объявлена.

Внутри блока asm выполняются следующие шаги:

  • push ebx: Пушит значение регистра ebx на стек.
  • mov eax,1: Переместит значение 1 в регистр eax.
  • db $0F,$A2: Это байт-инструкция, которая загружает инструкционный сет SSE2 (SSE2 - расширение к SSE).
  • test edx,$2000000: Проверяет значение регистра edx против маски $2000000. Если проверка провалилась, то это означает, что SSE не поддерживается.
  • jz @NOSSE: Перепрыгнет к метке @NOSSE, если проверка провалилась (т.е., SSE не поддерживается).
  • mov edx,0: Переместит значение 0 в регистр edx.
  • mov TempCheck,edx: Переместит значение регистра edx в переменную TempCheck.

Блок asm заканчивается инструкцией pop ebx, которая выталкивает значение из стека обратно в регистр ebx.

Функция CheckSSE возвращает значение переменной TempCheck. Если SSE поддерживается, то TempCheck будет равен 0, что означает, что SSE не поддерживается (потому что проверка провалилась и метка @NOSSE была перепрыгнута). В противном случае она будет равна 1, что означает, что SSE поддерживается.

В целом, эта функция проверяет, поддерживает ли CPU инструкции SSE, пытаясь выполнить инструкцию SSE. Если инструкция провалилась или вернула ошибку, то это означает, что SSE не поддерживается. Функция возвращает True, если SSE не поддерживается, и False в противном случае.

В статье описывается функция CheckSSE, позволяющая определить поддержку SSE в системе на языке Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Процессор ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:58:26/0.0055789947509766/1