Команда СМР выполняет вычитание второго операнда из первого. В соответствии с результатом вычитания устанавливаются состояния флагов CF, PF, AF, ZF, SF и OF. Сами операнды не изменяются. Таким образом, если команду сравнения записать в общем виде
сmр операнд_1, операнд_2 то ее действие можно условно изобразить следующим образом:
операнд_1 - операид_2 флаги процессора
В качестве операндов можно указывать регистр (кроме сегментного) или ячейку памяти, а в качестве второго операнда еще и непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами и представлять числа со знаком или без знака. Обычно вслед за командой СМР стоит однаиз команд условных переходов, анализирующих состояние флагов процессора (je - переход, если равно, jne - переход, если не равно и т.д.).