logo

Понедельник 11 Декабрь 2017 (GMT+0300)

Система команд x86

Программирование - Архитектура и система команд микропроцессоров 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

INC

Инкремент

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

OF

DF

IF

TF

SF

ZF

AF

PF

CF

*

     

*

*

*

*

 

 

Код

Команда

Описание

Проц.

Пример

FE /0

INC r/m8

Увеличить r/m8 на 1

8086

inc al

FF /0

INC r/m16

Увеличить r/m16 на 1

8086

inc word ptr [di]

FF /0

INC r/m32

Увеличить r/m32 на 1

Intel386

inc dword ptr [ebx]

40+rw

INC r16

Увеличить r16 на 1

8086

inc dx

40+rd

INC r32

Увеличить r32 на 1

Intel386

inc ecx

Описание:

Команда INC (Increment by 1) относится к группе команд целочисленной (или двоичной) арифметики (Binary Arithmetic Instructions). Она производит целочисленное сложение, увеличивая операнд команды (операнд-назначение, DEST) на единицу. Операнд-назначение (DEST) является единственным операндом команды и может быть быть переменной в регистре или в памяти (r16, r32, r/m8, r/m16, r/m32).

Особенностью команды INC является то, что она влияет на флаги EFLAGS.OF, EFLAGS.SF, EFLAGS.ZF, EFLAGS.AF и EFLAGS.PF, но не влияет на флаг переноса EFLAGS.CF. Это востребовано при организации разнообразных циклов, когда нет необходимости отслеживать переполнение. В противном случае нужно использовать команду ADD со вторым операндом равным 1.

Команда INC с операндом-назначением (DEST), являющимся переменной в памяти, может использоваться совместно с префиксом блокировки LOCK, который обеспечит атомарное исполнение команды.

Для команды INC обратной является команда DEC, уменьшающая операнд-назначение (DEST) на единицу.

Операция:

DEST = DEST + 1;

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

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

Intel386 … :
#PF(Код ошибки) при страничной ошибке.
#UD при использовании префикса LOCK, если операнд-назначение (DEST) не является значением в памяти.

Intel486 … :
#AC(0) при невыровненной ссылке в память, если активирован контроль выравнивания (CR0.AM = 1, EFLAGS.AC = 1, CPL = 3).

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

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

Intel386 … :
#UD при использовании префикса LOCK, если операнд-назначение (DEST) не является значением в памяти.

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

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

Intel386 … :
#PF(Код ошибки) при страничной ошибке.
#UD при использовании префикса LOCK, если операнд-назначение (DEST) не является значением в памяти.

Intel486 … :
#AC(0) при невыровненной ссылке в память, если активирован контроль выравнивания (CR0.AM = 1, EFLAGS.AC = 1, CPL = 3).

Замечание:

К командам целочисленной арифметики относятся команды ADD, ADC, SUB, SBB, IMUL, MUL, IDIV, DIV, INC, DEC, NEGCMP.

В свою очередь, сами названные команды целочисленной арифметики делятся на следующие подгруппы:

  • команды сложения (ADDADCINC);
  • команды вычитания (SUB, SBB, DEC);
  • команды умножения (IMUL, MUL);
  • команды деления (IDIV, DIV).
  • команды сравнения и изменения знака (CMP, NEG).

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




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

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

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