Главная страница
    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.041 c
14-1078559394
IIStan
2004-03-06 10:49
2004.04.04
Кому-нибудь в Питере нужны 3 билета на Колбасный Цех 4???


6-1075524205
Don
2004-01-31 07:43
2004.04.04
INTERNET


3-1078215152
Владий
2004-03-02 11:12
2004.04.04
Помогите найти ошибка - кроме головы? =)


1-1079251428
Sphinx
2004-03-14 11:03
2004.04.04
Свернуть-Развернуть= -2МБ


14-1079023566
ИМХО
2004-03-11 19:46
2004.04.04
"I/O error 998"





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский