Уменьшение регистра или ячейки памяти на 1
________________________DEC reg/mem
8 _- Уменьшить reg/mem
8 на 1.
________________________DEC reg/mem
16 - Уменьшить reg/mem
16 на 1.
Вычитает 1 из целевого операнда, сохраняя при этом состояние флага CF. Целевым операндом может быть регистр или ячейка памяти. Эта инструкция позволяет обновлять счётчик циклов, не нарушая флаг CF. (Чтобы выполнить операцию уменьшения, которая обновляет флаг CF, используйте инструкцию
sub с непосредственным операндом, равным 1.)
Эта инструкция может использоваться с префиксом
lock, чтобы разрешить выполнение инструкции атомарно.
На флаг CF это не влияет. Флаги OF, SF, ZF, AF и PF устанавливаются в соответствии с результатом.
В качестве примера рассмотрим случай, когда регистр cx содержит
210 (
000216). Выполнение
inc cx приведёт к увеличению содержимого регистра cx до
210 (
000316), затем мы два раза выполним инструцию
dec cx что приведет к уменьшению результата на 2.
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- code segment public _______; Начало сегмента кода
- ____assume cs:code
- ____main proc _____________; Начало процедуры main
- ________mov_____cx, 2 _____; Копируем значение 2 в регистр cx
- ________inc_____cx ________; Увеличиваем значение регистра cx на 1
- ________dec_____cx ________; Уменьшаем значение регистра cx на 1
- ________dec_____cx ________; Уменьшаем значение регистра cx на 1
- ________mov_____ax, 4C00h__; Копируем значение функции завершения процесса в ah а значение в al
- ________int_____21h _______; Вызываем прерывание DOS
- ____main endp _____________; Конец процедуры main
- code ends _________________; Конец сегмента кода
- end main __________________; Конец файла. Точкой входа указывается процедура main