Я работаю через язык сборки Kip Irvine "для x86-процессоров, шестое издание" и действительно наслаждаюсь им.
Я только что прочитал о мнемонике NOP в следующем абзаце:
"It [NOP] is sometimes used by compilers and assemblers to align code to 
 even-address boundaries."
Приведенный пример:
00000000   66 8B C3   mov ax, bx
00000003   90         nop
00000004   8B D1      mov edx, ecx
В книге затем говорится:
"x86 processors are designed to load code and data more quickly from even 
 doubleword addresses."
Мой вопрос: причина в том, что причина в том, что для процессоров x86 в книге упоминается (32 бит), размер слова процессора составляет 32 бита, и поэтому он может вытягивать инструкции с помощью NOP и обрабатывать их в один конец? Если это так, я предполагаю, что 64-битный процессор с размером слова квадлового слова будет делать это с гипотетическим 5 байтами кода плюс nop?
Наконец, после того, как я напишу свой код, должен ли я пройти и правильно выполнить выравнивание с NOP, чтобы его оптимизировать, или компилятор (MASM, в моем случае), сделает это для меня, поскольку текст, по-видимому, подразумевает?
Спасибо,
Скотт
