Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
1-1079279326
wl
2004-03-14 18:48
2004.04.04
wave --->TClipboard?


1-1079195963
Sormy
2004-03-13 19:39
2004.04.04
Картинки в RxRichEdit v1.75


14-1078748217
Marina_S
2004-03-08 15:16
2004.04.04
ассемблер


3-1078817075
denmin
2004-03-09 10:24
2004.04.04
Помогите!!!! Задолбался с ADOTable


11-1059319517
BelchonokH
2003-07-27 19:25
2004.04.04
pstream.free