AX*OPRD = DX(16|AX(16
8 MUL CL; MUL BYTE PTR [BX+1]
AL*OPRD = AX
DX(16|AX(16) /OPRD(16)
8 DIV CL; DIV BYTE PTR [BX+1]
AX/OPRD( AH= AL=
0/
AAM* (ASCII adjust for Multiply) AL(<100) Unpacked BCD
(00-09H)AX
AH(AL)/10; (AL)(AL)%10 ()SFZFPF !
AAD* ASCII adjust for Divide:UPKed-BCD AX: AL=AH*10+AL;AH=0 !
AX HEX) AAD----DIVB----AAM
*
OR dest, src; OR AL,55HH;
OR WORD PTR [BX], DH
XOR dest, src (logical Exclsive or )⊕
XOR AX,AX; XOR CL, [BX]
NOT dest ;B:dest=255-dest; W:dest=65535-dest
NOT AL; NOT WORD PTR [BX]
NOT BYTE PTR ES: [2000H]
OR CL, 04H
TEST dest,src
AND AL,80H; AND AX,0FFFFH
1/CL *2
SHL/SAL dest,CL SHL WORD PTR[BX],CL
CF dest(MSB… LSB) 0
Logical & shifting
SHR dest, 1(CL) 0dest(MSB…LSB)CF
Logical & shifting
MSBdest(MSB…LSB)CF
AL=11000100B(C4H=-60=3CH)
SAR AL,11111111B; (0FFH=-1)
ROR(Rotate right)
816/
RCL dest 1/CL
RCR dest 1/CL
Logical & shifting
DF=0
SI=src pointer (DS) DI=dest pointer(ES) DFINCDF=0/DEC
B+-1/W+-2
REP(Z)=REPEREPNZ=REPNE
REPEZCMPS/SCAS CX=0ZF=0
REPNEZF=0Repeat while (CX≠0 )and (ZF=0)CX
--CX-1
JMP SHORT_LABEL; IP –128+127
SHORT IP=IP+disp8
JMPJUMPNEAR_LABEL IP=IP+disp16
JMP FAR_LABEL; CS:IP=
JMP SHORT JMP NEAR PTR JMP FAR PTR REG16/mem16
JMP 2000H; JMP BX; JMP 0FFFFH0 ()
JMP FAR PTR TABLE[SI]; JMP NEAR PTR [BP][DI]
LOOPZ/LOOPE short_label; loop while zero/equal
(CX)=0 or (ZF=0)
LOOPNE/LOOPNZ short_label; (Loop while NZ/NE)
(CX)=0 or (ZF=1)
JCXZ if CX=0 Jump to (Jump On CX Zero)
CX
Call a procedure )
CALL MEM32; (CS)MEM32+2, (IP)MEM32
CALL 2000H; CALL BX; CALL NEAR PTR ES:[SI]
CALL 2000:3000H; CALL FAR PTR[2000H]