Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Что быстрее?   Найти похожие ветки 

 
Dmk ©   (2004-03-14 18:59) [0]

1. mov     al, [eax]
  and     eax, $000000FF

или    

2. movzx   al, byte ptr [eax]

?

Если есть у кого-нибудь информация
по кол-ву тактов на инструкцию, поделитесь плз.


 
Dmk ©   (2004-03-14 19:02) [1]

Извиняюсь
2. movzx eax, byte ptr [eax]


 
VMcL ©   (2004-03-14 19:22) [2]

http://www.intel.com/
http://www.amd.com/
...


 
Dmk ©   (2004-03-14 19:35) [3]

У меня есть преподробнейшее описание инструкций, но там
не указано кол-во тактов.


 
wl ©   (2004-03-14 22:03) [4]

количество тактов у процессоров (разных фирм и поколений одной фирмы) для некой операции различное, что связано с непрерывным совершенствованием технологии, так что опираться на какой-либо конкретный процессор опасно, но чтобы проверить, можно в цикле выполнить обе эти операции раз  так миллион, и сравнить время выпонления.


 
Gero ©   (2004-03-14 22:26) [5]

> выполнить обе эти операции раз  так миллион

Скорее, миллиард.


 
DiamondShark ©   (2004-03-14 22:40) [6]


> > выполнить обе эти операции раз  так миллион
>
> Скорее, миллиард.

И не в многозадачной среде.


 
wl ©   (2004-03-14 22:45) [7]

но мне кажется всё-таки, что обе они работают одинаково медленно, потому что идёт переключение разрядности регистров (al - eax), что если мне не изменяет память, кроме всего прочего, не позволяет выполняться операции параллельно в конвейере, и требуется несколько циклов на переключение этой самой разрядности. если я не прав, то заранее извиняюсь, документацию по процессорам и профайлингу давно не читал.


 
Dmk ©   (2004-03-14 23:11) [8]

Нарыл я документацию по тактам, но для 486 машин.
Судя по ней операции movzx занимает 3 такта, а
mov и and по 1 такту.
Остается только верить =).
Спасибо всем за внимание.


 
Defunct ©   (2004-03-15 08:28) [9]

Быстрее будет:

MovZX AL, Byte Ptr [EAX]

Быстрее, и занимает меньше памяти

Dmk ©   (14.03.04 23:11) [8]
Не забывайте о тактах, которые требуются для выборки команды


 
MBo ©   (2004-03-15 08:34) [10]

>Dmk
movzx быстрее (экспериментировал в статье "Поставить точку")


 
evvcom   (2004-03-15 09:08) [11]

Я думаю, боле-менее для "простых" команд можно ориентироваться по длине команды в байтах. Ведь выборка команды из памяти практически всегда отнимает у процессора гораздо больше времени, чем выполнение самой команды. Мне кажется, что это справедливо и для кеша. Хотя не спорю, может я и ошибаюсь. Исходя из длины команды:
 mov al, [eax] // 2 байта
 and eax, $FF  // 5 байтов
 // Итого 7 байт
 movzx eax, byte ptr [eax] // всего 3 байта
И второй довод. Если бы на таких командах как movzx ничего бы не выигрывали, был бы смысл их вводить конструкторам?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.032 c
1-1079632695
Chcnger
2004-03-18 20:58
2004.04.04
Числа


8-1069342227
Roa
2003-11-20 18:30
2004.04.04
Формирование миниатюры изображения


1-1079527534
Inimeg
2004-03-17 15:45
2004.04.04
EIBInterBaseError - что это такое


6-1075135863
kor@l
2004-01-26 19:51
2004.04.04
HTTP


14-1078354077
Orik_Dreammy
2004-03-04 01:47
2004.04.04
Книгу надо...блин...ОЧЕНЬ!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский