Справочник по языку Ассемблера IBM PC

CMPXCHG


(CoMPare and eXCHanGe)

Сравнение и обмен

Схема команды:  cmpxchg приемник,источник(аккумулятор) 

Назначение: сравнение и обмен значений между источником и приемником.


Алгоритм работы:

выполнить сравнение элементов источник и приемник;

если источник и приемник не равны, то:

установить zf=0;



переслать содержимое операнда приемник в источник (регистр al/ax/eax).

если источник и приемник равны, то:

установить zf=1;

переслать содержимое операнда источник (регистр al/ax/eax) по месту операнда приемник.

Состояние флагов после выполнения команды:

11 07 06 04 02 00
OF SF ZF AF PF CF
r r r r r

Применение:


Команды сравнивают два операнда. Один из сравниваемых операндов находится в аккумуляторе (регистре al/ax/eax), другой может находиться в памяти или регистре общего назначения. Если значения равны, то производится замена содержимого операнда приемник содержимым источника, находящимся в регистре-аккумуляторе. Если значения не равны, то производится замена содержимого операнда источника находящимся в регистре-аккумуляторе содержимым операнда назначения. Определить тот факт, была ли произведена смена значения в аккумуляторе (то есть были ли не равны сравниваемые операнды), можно по значению флага zf.

.486         mov     ax,114eh         mov     bx,8e70h         cmpxchg bx,ax         jz      m1      ;переход, если zf=1, то есть операнды равны                         ;и ax не изменился ...                     ;действия, если операнды не равны m1:         

См. также: уроки 7, 10 и команды ,



Содержание раздела