Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Программирование -> Assembler -> Оптимизация для pentium процессора


13. ПРЕФИКСЫ
============
Инструкция с одним или более префиксами не сможет выполниться в V-трубе
(смотри раздел 8.7), кроме того требуется один такт, для декодирования
каждого префикса, за исключением 0Fh на Pentium MMX и Pentium Pro.

Префиксы адреса, могут быть анулированны использованием 32 битного режима.
Сегментные префиксы могут быть анулированны в 32 битном режиме, использованием
модели памяти FLAT.
Префиксы размера операнда могут быть анулированны в 32 битном режиме, если вы
будете пользоваться только 8 или 32 битными числами.

Там, где без префиксов не обойтись, их декодирование может быть замаскированно
если предыдущая инструкция исполнялась более одного такта. Для Pentium без MMX
существует правило - любая инструкция, исполняющаяся N тактов (не
декодирующаяся) может "затмевать" N-1 префикс для следующих двух (иногда трех)
инструкций. Другими словами, каждый такт (кроме первого), который использует
инструкция, что бы выполниться может быть использован для декодирования
префикса последующей инструкции. Этот эффект может распространяться на
предсказанную ветвь. Любая инструкция, которая использует дополнительные такты
из-за остановки AGI, промаха кеша, рассогласования, или любой друго причины,
кроме задержки декодирования и не правильного предсказания перехода может
"затмевать" декодировку префиксов последующих команд. На Pentium MMX
неспаренные команды так же могут создавать эффект "затемнения".

Примеры:

CLD / REP MOVSD
Инструкция CLD исполняется два такта, по этому второй такт будет использован
для того, что бы "затемнить" декодирование префикса REP. Код использует
два такта, если CLD будет стоять "далеко" от REP MOVSD.

CMP DWORD PTR [EBX],0 / MOV EAX,0 / SETNZ AL
Инструкция CMP, так же, будет исполняться два такта, потому что это инструкция
чтения/модифицирования. Префикс 0Fh инструкции SETNZ будет декодирован во
время второго такта инструкции CMP, таким образом процесс декодирования будет
скрыт.

Дальше



 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.