Сообщение от jimon
Tronix
я говорил физически, а не программно, современные x86 процессоры это RISC ядро с CISC обёрткой, большинство x86 команд и остальные делаются через микрокод
команда loop это по-сути dec, cmp и jmp, я не вижу смысла чтобы такие три команды реализовывали в железе как одну команду, потому считаю что она реализована в микрокоде процессора, возможно ошибаюсь 
|
Если уж на то пошло, то команда loop по сути это dec cx и jnz. Но даже на уровне микроядра реализованна отдельно. Как известно, на 8088 и 8086 она выполнялась быстрее чем аналогичные dec/jnz, одна со времен 386 наблюдается обратная ситуации - loop выполняется дольше. Поэтому во всяких тру-хацкерских манах по оптимизации советуют не использовать loop для циклов на современных процах. Из этого собственно и сделан вывод - что и на уровне микроядра эти команды реализованы по-разному во всей линейке процессоров x86.
PS: Хотя возможно тоже ошибаюсь, потому что эта ситуация может происходить из-за спаривания/не спаривания, ветвлений и прочих свистоперделок. Сейчас с этим черт ногу сломит, и пока не произведешь ряд тестов - хрен разберешься что в том или ином случае будет быстрее. С 88/286/386/486 было все куда более понятно....