logo
КП_2007

Команда inc (Инкремент на 1) Команда inc прибавляет 1 к операнду - приемнику, но в отличие от add не влияет на флаг cf.

Последовательность команд:

14EB:0100 B8FE00 MOV AX,00FE

14EB:0103 FEC0 INC AL

14EB:0105 FEC0 INC AL

14EB:0107 FEC0 INC AL

Загружаем –2 в регистр AL:

AX=00FF BX=0070 CX=0000 DX=FFFF SP=EA04 BP=0000

SI=0000 DI=0000 DS=14EB ES=14EB SS=14EB CS=14EB

IP=0103

NV UP EI NG NZ AC PO NC

14EB: 0103 FEC0 INC AL

AX=00FF BX=0070 CX=0000 DX=FFFF SP=EA04 BP=0000

SI=0000 DI=0000 DS=14EB ES=14EB SS=14EB CS=14EB

IP=0105

NV UP EI NG NZ NA PE NC

* * *

Выполнили инкремент в регистр AL, получив –1. Флаги, изменяемые арифметическими командами, изменяются также и командой INC.

14EB: 0105 FEC0 INC AL

AX=0000 BX=0070 CX=0000 DX=FFFF SP=EA04 BP=0000

SI=0000 DI=0000 DS=14EB ES=14EB SS=14EB CS=14EB

IP=0107

NV UP EI PL ZR AC PE NC

* * *

Выполнив инкремент от –1 до 0, надо было бы сформировать перенос. В этом отношении – отсутствии влияния на флаг перенос – командой INC отличается от обычных арифметических команд.

14EB: 0107 FEC0 INC AL

AX=0001 BX=0070 CX=0000 DX=FFFF SP=EA04 BP=0000

SI=0000 DI=0000 DS=14EB ES=14EB SS=14EB CS=14EB

IP=0109

NV UP EI PL NZ NA PO NC

* *

При выполнении инкремента от 0 до 1 результат отражается в состоянии флагов.

Исключительные ситуации реального режима:

Такие же, как для команды ADD.

Исключительные ситуации защищенного режима:

Такие же, как для команды ADD.