, , : - (BCD -), - (ASCII -). , . AL. , , , , , , , . , .
ADD ADC. , :
, 9;
16.
AF CF , AL, .
D (Decimal Adjust for Addition) BCD-, .
, AL. :
- AF = 1 AL , 9, AL 06;
- CF = 1 AL , 9, AL 60;
- , .
ϳ D CF .
AAA (Ascii Adjust for Addition) BCD -, . AL. :
- AL AF = 0, AL;
- AL 9 AF = 1, 06 AL 1 A;
- AL;
- CF , AF.
SUB SBB. AF CF , AL, .
DAS (Decimal Adjust for Subtraction) . :
|
|
- AF = 1 AL , 9, AL 06;
- CF = 1 AL , 9, AL 60.
AAS (Ascii Adjust after Subtraction) BCD-, . :
- AL AF = 0, AL;
- AL AF = 1, 06 AL;
- AL;
- CF CF.
AAM (Ascii Adjust after Multiply) BCD - , 63 (99 D), BCD -.
AL (0 ) , AL. SF, ZF, PF AL, OF AF CF .
AAD (Ascii Adjust before Division) BCD - , 63 (99 D), . :
- 10 D AL;
- .
DIV.
:
BSWAP (Byte SWAP) .
BSWAP src.
src () 32- . ( ). . . 9.11.
9.11 BSWAP
XADD (eXchange and ADD) .
XADD dst,src.
dst () 8-, 16- 32- . src () .
:
dst () src ();
dst () src ();
dst (). .
CMP (CoMPare operands) .
CMP dst,src.
dst () , src () , . , src () .
|
|
dst () src (). , , .
, , :
CMPS (CoMPare String) ;
CMPSB (CoMPare String Byte) ;
CMPSW (CoMPare String Word) ;
CMPSD (CoMPare String Double word operands) .
CMPS dst,src.
CMPSB, CMPSW, CMPSD .
ֳ - , , DS:SI -, ES:DI. , .
dst () src (). , , .
ϳ SI DI DF. DF 0 ( CLD), SI DI , DF 1 ( STD), SI DI . / 1, , 2, , 4, .
REP, , 0.
CMPXCHG (CoMPare and eXCHanGe) .
CMPXCHG dst,src.
dst () , src () , .
, ZF = 1, ZF = 0 , .
SETcc (byte SET on condition) .
SETcc src.
8- .
01 , , 00 , .
, .
, , :
SCAS (SCAn String) ;
SCASB (SCAn String Byte) ;
SCASW (SCAn String Word) ;
SCASD (SCAn String Double word) ;
SCAS dst.
CMPSB, CMPSW, CMPSD .
dst (), ES:DI, AL (), AX (), EAX ( ). , , .
ϳ DI DF. DF 0 ( CLD), DI , DF 1 ( STD), . / 1, , 2, , 4, .
|
|
REP, 0.
, . , , .
-86:
AND (logical AND) ().
OR (logical OR) ().
XOR (logical eXclusive OR) .
TEST (TEST operand) . .
NOT (NOT operand) .
:
AND dst,src.
OR dst,src.
XOR dst,src.
TEST dst,src.
NOT src.
8-, 16-, 32- . src () ( NOT).
AND, OR, XOR, TEST :
OF CF ;
SF, ZF, PF , ;
AF .
. , , , , , , 0. , , .
:
SHL (Shift logical Left) ;
SAL (Shift Arithmetic operand Left) ;
SHR (Shift logical Right) ;
SAR (Shift Arithmetic operand Right) ;
RCL (Rotate operand through Carry flag Left) ;
RCR (Rotate operand through Carry flag Right) ;
ROL (Rotate operand Left) ;
ROR (Rotate operand Right) .
. 9.3.
: opr ( , ); cnt ( 1 - CL).
9.3
SHL opr,cnt SAL opr,cnt SHR opr,cnt SAR opr,cnt RCL opr,cnt RCR opr,cnt ROL opr,cnt ROR opr,cnt |
opr |
:
1 ? ?
2 SUB SBB? .
3 DEC CX?
4 MUL src () dst ()?
5 DIV src () dst ()?
|
|
6 CWD?
7 ? ?
8 ?
9 :
MOV AX,AFH
SHL AX,1
10 :
MOV AX,AFH
ROR AX,1
11 :
MOV AX,AFH
RCL AX,1
:
1 - ?
2 - ?
3 ?
4 2?