Site Logo

Arithmetic and Logic

Website

Home | Previous | Next

Arithmetic Instructions - Flags are set.

 

The Commands

Arithmetic Logic Bitwise
Add - Addition AND - Logical AND - 1 AND 1 gives 1. Any other input gives 0. ROL - Rotate bits left. Bit at left end moved to right end.
Sub - Subtraction OR - Logical OR - 0 OR 0 gives 0. Any other input gives 1. ROR - Rotate bits right. Bit at right end moved to left end.
Mul - Multiplication XOR - Logical exclusive OR - Equal inputs give 0. Non equal inputs give 1. SHL - Shift bits left and discard leftmost bit.
Div - Division NOT - Logical NOT - Invert the input. 0 gives 1. 1 gives 0. SHR - Shift bits right and discard rightmost bit.
Mod - Remainder after division    
Inc - Increment (add one)    
Dec - Decrement (subtract one)    

 

COMMANDS
DIRECT EXAMPLES
OP
Assembler Machine Code Explanation
ADD
ADD   AL,BL A0 00 01 Add BL to AL
SUB
SUB   CL,DL A1 02 03 Subtract DL from CL
MUL
MUL   AL,CL A2 00 02 Multiply AL by CL
DIV
DIV   BL,DL A3 01 03 Divide BL by DL
MOD
MOD   DL,BL A6 03 01 Remainder after dividing DL by BL
INC
INC   AL A4 00 Add one to AL
DEC
DEC   BL A5 01 Deduct one from BL
AND
AND   CL,AL AA 02 00 CL becomes CL AND AL
OR
OR    CL,DL AB 02 03 CL becomes CL OR DL
XOR
XOR   BL,AL AC 01 00 BL becomes BL XOR AL
NOT
NOT   CL AD 02 Invert the bits in CL
ROL
ROL   DL 9A 03 Bits in DL rotated one place left
ROR
ROR   AL 9B 00 Bits in AL rotated one place right
SHL
SHL   BL 9C 01 Bits in BL shifted one place left
SHR
SHR   CL 9D 02 Bits in CL shifted one place right

 

COMMANDS
IMMEDIATE EXAMPLES
OP
Assembler
Machine Code
Explanation
ADD
ADD   AL,15
B0 00 15
Add 15 to AL
SUB
SUB   BL,05
B1 01 05
Subtract 5 from BL
MUL
MUL   AL,10
B2 00 10
Multiply AL by 10
DIV
DIV   BL,04
B3 01 04
Divide BL by 4
MOD
MOD   DL,20
B6 03 20
Remainder after dividing DL by 20
AND
AND   CL,55
BA 02 55
CL becomes CL AND 55 (01010101)
OR
OR    CL,AA
BB 02 AA
CL becomes CL OR AA (10101010)
XOR
XOR   BL,F0
BC 01 F0
BL becomes BL XOR F0

 

Examples

ADD    CL,AL - Add CL to AL and put the answer into CL.

ADD    AL,22 - Add 22 to AL and put the answer into AL.

The answer always goes into the first register in the command.

Data Movement Direction Image

DEC    BL - Subtract one from BL and put the answer into BL.

The other commands all work in the same way.

Flags

If a calculation gives a zero answer, set the Z zero flag.
If a calculation gives a negative answer, set the S sign flag.
If a calculation overflows, set the O overflow flag.

An overflow happens if the result of a calculation has more bits than will fit into the available register. With 8 bit registers, the largest numbers that fit are -128 to + 127.

Home | Previous | Next

© C Neil Bauers 2003