2016-04-09 2 views

ответ

0

В x86 сборка соответствующая инструкция CMPSD. В Intel Instruction manual она описывается как

OpCode байт: А7 --- инструкция: CMPSD --- Кодировка: NP --- 64-битный: Действительный --- 32-битный: Действительный

  • Для устаревшего режима сравните dword по адресу DS: (E) SI с dword по адресу ES: (E) DI;
  • Для 64-разрядный режим сравнения dword по адресу (R | E) SI с dword по адресу (R | E) DI. Соответственно устанавливаются флаги состояния .

CMPSD сравнивает два операнда памяти и устанавливает флаги состояния в EFLAGS соответственно для потребления Jcc/CMOVcc/....

Так, для сравнения два типа DWORD/4-байтовые переменные, настройки ESI и EDI, как этот

lea esi, var1  ; ESI = address of var1 
lea edi, var2  ; EDI = address of var2 
cmpsd    ; compare them 
Jcc...   ; use (E)FLAGS 

Для других переменных размеров, как 1,2,4,8 байтов используют CMPS (B, W, D , Q) соответственно.

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