Как запустить make & CMake программно

Оба кода операций одинаковы. Это избыточность x86. Ассемблер может выбирать все, что ему нравится

Типичная инструкция архитектуры x86 имеет два кода операций. Первый из них имеет регистр как первый операнд и регистр или место памяти в качестве второго (это сокращенно "reg, reg/mem32" в ссылке на код операции или "Gv, Ev" в таблице опкодов). Операнды для второго кода операции обращаются (это сокращенно "reg/mem32, reg" или "Ev, Gv"). Это имеет смысл: процессор должен знать, копируется ли он в память или из памяти. Но когда оба операнда являются реестрами, кодирование становится избыточным:

blockquote>
                  ; mod reg r/m
03C3 add eax, ebx ;  11 000 011
01D8 add eax, ebx ;  11 011 000

Есть гораздо больше, чем просто стиль reg / reg, подобный этому. См. здесь

Различные сборщики генерируют разные коды операций, поэтому этот метод можно использовать для идентифицировать ассемблер

Некоторые ассемблеры позволяют вы можете выбрать кодировку. Например, GAS может испускать другую кодировку, если вы прикрепляете .s до конца

10 de   adcb   %bl,%dh
12 f3   adcb.s %bl,%dh

Что такое & quot ;.s & quot; суффикс в инструкциях x86?

-9
задан Fraser 14 December 2014 в 00:56
поделиться