2012-06-20 2 views
2

В сравнении с другими инструкциями по сборке, такими как JMP, CALL, MOV, PUSH (я имею в виду более удобные команды), правильно ли сказать, что CMP требует больше времени для запуска?Правильно ли сказать: «Команда CMP - самая длинная команда сборки»?

+0

Хм ... Откуда вы это слышали? – Mysticial

+1

, пожалуйста, укажите архитектуру набора инструкций (процессор), о которой вы говорите. скачки могут привести к промывке трубы, которая дороже сравнения, которая относится к простейшей команде alu (sub, которую вам не нужно сохранять. Push вызывает доступ к памяти (или более), который может быть медленным. означающее более удобные команды, команда cmp не является редко используемой инструкцией. –

+0

на самом деле нет где! – Mostafa

ответ

-1

нет, MOV на сегодняшний день может занимать больше всего времени, потому что в общем случае он должен ударить по памяти, чтобы выполнить перемещение (намного медленнее, чем доступ к регистру) и может блокироваться. CMP, с другой стороны, в общем случае принимает литералы и регистры в качестве аргументов на практике и только попадает в ALU.

CALL на самом деле делает PUSH и JUMP, а второй является самым длинным. О да, и, как уже упоминалось, JMP может очистить трубопровод (хотя безусловный переход не будет).

Нижняя линия CMP быстро, быстро, как INC, ADD или любой другой простой математический калькулятор, который чаще всего оптимизирован для использования значений регистров и литералов и не делает ничего больше, чем попадание в ALU.

+0

Спасибо за ваше время. Действительно, Я программист на C++, и всегда стараюсь, чтобы мои коды были чистыми. Что-то в моем уме всегда подсказывает мне избегать, если в любом случае вы отвечаете так полезно. – Mostafa

+1

По частоте CPU проводят большую часть своего времени, делая «LOAD», «CMP», , «JMP». Ваш процессор не будет быстрым, если архитекторы не настроят эти инструкции для максимальной производительности ... и они это сделали. CMP работает быстро. –

Смежные вопросы