Выравнивание данных в сборке - PullRequest
0 голосов
/ 13 апреля 2020

Я читаю книгу Кипа Ирвина «Язык ассемблера для процессоров x86», и в разделе, где обсуждается директива ALIGN, автор упоминает, что «ЦП ​​обрабатывает данные, хранящиеся по четным адресам, быстрее, чем нечетные». нумерованные адреса. " Поэтому мой вопрос многофакторный:

  • Почему процессор обрабатывает данные по четным адресам быстрее?
  • Какая часть эффекта будет четной по сравнению с нечетной нумерованные адреса имеют?
  • Будет ли сегмент данных обычно начинаться с четного адреса или это зависит?

В разделе, подробно описывающем инструкцию NOP, автор упоминает, что процессоры x86 загружаются данные даже из двойных адресов быстрее. Тогда будет ли иерархия эффективности: адреса, кратные 8 (четные двойные слова, если я правильно понимаю)> адреса, кратные 2> нечетные адреса?

...