Здоровеньки!!!
--------------------------------------
почитал Ваш горячий спор
и вот решил выдать инфу насчет оптимизации программы на ASM под
семейство микропроцессоров P6(Pentium Pro II/III)
учитывая особенности ковейера данных процессора команда выбирается
на конвейер устройством выборки команд, которое помещает их в устройство декодирования , состоящее из трех
паралельно работающих декодеров 2а простых
1 сложныхю.. Декодеры преобразуют команды микропроцессора в микрооперации
представляющие собой примитивные команды которые выполняютя 5-ю работающими
паралельными исполнительными устройствами микропроцессора .... ну и так далее
.....
Для достижения наибольшей производительности работы декодеров необходимо чтобы на их входы поступали команды декодируемые 6 микрооперациями
-------------
некоторые команды декодируются 1 микрооперацией
а некоторые >4
-------------
в последовательности 4+1+1
==========================================
ню дак вот
расширенные регистры рассматиривать не будем там для MMX XMM технологии
r8,r16,r32 операндв регистре байт слово 2слово
m8,m16,m32 память
i8,i16,i32 непосредственный операнд
a8,a16,a32 отности операнд смещение в сегменте
------------------------------------------
команда
MOV |со всеми сегментами|,m16 -> 4 мкп
MOV |m16|,ds fs ss cs gs es -> 3 мкп
MOV m8,r8 -> 2
MOV rm16,es fs ss -> 1
MOV rm16/32,i16/32 -> 1
-------------------------------------------
POP ds fs ss -> 4
POP m16/32 -> 4
POP r16/32 -> 2
-------------------------------------------
PUSH cs gs es fs ss -> >4
-------------------------------------------
так что MOV и для современных компов работает быстреевозможно Я и ошибаюсь может есть новая технология, есть еще например
предсказания когда процессор анализ код и на основе этого предсказывает след команду если предсказать не удалось то идет момент синхронизации - может не точно
ню Я тут не полность привел
и вообще чем меньше команд тем медленнее получается это верно для
определенного размера программы у меня даже пример где-то есть