- ADD, ADC
ADD (add - ) ADC (add with carry- ) 8-, 16- .
ADD - - -.
: ADD ,
: := + ( ).
ADC , ADD, , : , .
: ADC , + CF
:
:= + + .
. -, . , 8- 0 255. , , 250 10, :
1111 1010; 250.
0000 1010; 10.
1 0000 0100; , 260.
, 9 . 8 - , 8 -, - CF.
, 8086 . (ADD) , , . (ADC) .
, . :
ADD ,MEM_WORD; ,
ADD MEM_WORD,AX; , .
ADD AL, 10; .
ADD MEM_BYTE,8H; .
, ().
ADD ADC :
CF 1, -, 0;
PF 1, 1, 0;
AF 1, ;
ZF 1, 0;
SF 1, ( 1), 0;
OF 1, , . OF 0.
|
|
INC
INC (increment - ) 1 , ADD CF. : INC .
INC . . .
:
INC CX; 16-
INC AL; 8- .
INC MEM_BYTE;
INC MEM_WORD; .
.
- SUB, SBB
SUB (substract - ) SBB (substract with borrow - ) ADD ADC, CF . : SUB ,;
SUB - - , :
:= .
SBB , CF:
SUB , F;
:= - - .
, SUB SBB . , ( , DX). . , SUB AX,CX; .
16 , :
SUB ,CX; 16 ;
SBB BX,DX; 16 .
32- , , 32- , DX. DX SBB .
( ) . :
SUB , MEM; .
SUB MEM [BX],AX; .
SUB AL,1O; .
SUB MEM_BYTE,OFh; .
.
SUB SBB :
CF 1, , 0;
PF 1, 1, 0;
AF 1, , 0;
|
|
ZF 1, 0, 0;
SF 1, ( 1), 0;
OF 1, , .
SF OF , AF- .
- DEC
DEC (decrement-) 1 , ( SUB) CF.
DEC , . . :
DEC CX; 16-,
DEC AL; 8- .
DEC MEM_BYTE; ,
DEC MEM_WORD[BX]; .
- DIV, IDIV
DIV (divide - ) , IDIV (integer divide - ) . :
DIV ; - ,
IDIV ; .
:
1. .
2. ( 8- ) DX ( 16- ).
3. :
- , AL, ;
- , , - DX.
, - (AL ), 0 ( 0).
4. :
0;
, , 256 ;
, , 65 536 ;
-128 +127;
-32768 32767.
:
DIV BX; DX:AX , .
DIV MEM_BYTE; , .
IDIV DL; DL .
IDIV MEM WORD; DX:AX , .
DIV IDIV , .
- MUL, IMUL
MUL (multiply-) , a IMUL (integer multiply-) . , , , . .
:
MUL ; - ,
IMUL ; .
() MUL IMUL AL ( ) ( ). :
- 16- ( ) AL ( );
- 32- DX ( ) ( ). , n - 2n.
|
|
MUL CF OF 0, 0; 1.
IMUL CF OF 0, . 1.
:
MUL BX; .
MUL MEM_BYTE; AL.
IMUL DL; DL AL .
IMUL MEM_WORD; .
MUL IMUL .
CBW, CWD,CDQ
, .
CBW (convert byte to word ) AL .
CWD (convert word to double word ) 15- DX.
CWDE 15- .
CDQ , 31- EAX EDX.
, CBW , .. CWD . :
CBW; AL AX ( ).
ADD AX,BX; AL .
CBW; AL AX.
IMUL ; AL .
CWD; A DX ( ).
IDIV ; .