logo

Воскресенье 04 Декабрь 2016 (GMT+0300)

Система команд x86
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

CMP

Сравнить два операнда

Влияние команды на флаги и форматы команды:

OF

DF

IF

TF

SF

ZF

AF

PF

CF

*

*

*

*

*

*

 

Код

Команда

Описание

Проц.

Пример

3C ib

CMP AL,imm8

Сравнить imm8 и регистра AL

8086

cmp al,17

3D iw

CMP AX,imm16

Сравнить imm16 и регистра AX

8086

cmp ax,0AABh

3D id

CMP EAX,imm32

Сравнить imm32 и регистра EAX

Intel286

cmp eax,0AAC23h

80 /7 ib

CMP r/m8,imm8

Сравнить imm8 и r/m8

8086

cmp bl,5

81 /7 iw

CMP r/m16,imm16

Сравнить imm16 и r/m16

8086

cmp bx,0A4Fh

81 /7 id

CMP r/m32,imm32

Сравнить imm32 и r/m32

Intel286

cmp edx,0CAAAAh

83 /7 ib

CMP r/m16,imm8

Сравнить знакорасширенного  imm8 и r/m16

8086

cmp word ptr [di],7

83 /7 ib

CMP r/m32,imm8

Сравнить знакорасширенного  imm8 и r/m32

Intel286

cmp ecx,0Fh

38 /r

CMP r/m8,r8

Сравнить байтового регистра и r/m8

8086

cmp ch,al

39 /r

CMP r/m16,r16

Сравнить 16-битного регистра и r/m16

8086

cmp word ptr m32,dx

39 /r

CMP r/m32,r32

Сравнить 32-битного регистра и r/m32

Intel286

cmp edx,ebx

3A /r

CMP r8,r/m8

Сравнить r/m8 и байтового регистра

8086

cmp ch,sum

3B /r

CMP r16,r/m16

Сравнить r/m16 и 16-битного регистра

8086

cmp si,ax

3B /r

CMP r32,r/m32

Сравнить r/m32 и 32-битного регистра

Intel286

cmp edi,raznost

Операция:

temp = LeftSRC - SignExtend(RightSRC); (* при выполнении этого действия все флаги устанавливаются также, как и для команды SUB *)

(* CMP не сохраняет результат; цель команды - установление флагов *)

Описание:

Команда CMP вычитает второй операнд из первого, но, в отличие от команды SUB, не сохраняет результат — изменяются только флаги. Команда CMP обычно используется вместе с условными переходами Jcc, командами SETcc и CMOVcc. Если более чем однобайтный операнд сравнивается с однобайтным непосредственным значением, однобайтное значение сначала знакорасширяется.

Особые ситуации защищенного режима:


#GP(0), если используется некорректный эффективный адрес операнда в памяти в сегментах CS, DS, ES, FS, GS или нулевой селектор.
#SS(0) при использовании некорректного эффективного адреса в сегменте SS.
#PF(Код ошибки), страничная ошибка.
#AC(0) при невыровненной ссылке в память при текущем уровне привилегий равном 3.

Особые ситуации режима реальной адресации:


#GP, если любая часть операнда находится вне пространства эффективных адресов в сегментах CS, DS, ES, FS или GS.
#SS, если любая часть операнда находится вне пространства эффективных адресов в сегменте SS.

Особые ситуации режима V86:


Такие же, как и в режиме реальной адресации.
#PF(Код ошибки), страничная ошибка.
#AC(0) при невыровненной ссылке в память.

Входит в группу команд: Базовая система команд CPU



Все права защищены © 1997-2011 Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru

Яндекс.Метрика               Сервер радиолюбителей России - схемы, документация,

 соревнования, дипломы, программы, форумы и многое другое!   схемы новости электроники