28
FLOW CHART FOR 8-BIT ADDITION START LOAD ADDRESS OF DATA IN HL PAIR CHECK WHETHER CY=0 CLEAR C-REGISTER INCREMENT C-REGISTER INCREMENT HL PAIR ADD CONTENT OF MEMORY TO A- REGISTER ADD CONTENT OF MEMORY TO A- REGISTER GET THE FIRST DATA IN A-REG ADD CONTENT OF MEMORY TO A- REGISTER STOP

Flow Charts1

Embed Size (px)

Citation preview

Page 1: Flow Charts1

FLOW CHART FOR 8-BIT ADDITION

START

LOAD ADDRESS OF DATA IN HL PAIR

CHECK WHETHER

CY=0

CLEAR C-REGISTER

GET THE FIRST DATA IN A-REG

INCREMENT HL PAIR

ADD CONTENT OF MEMORY TO A-

REGISTER

ADD CONTENT OF MEMORY TO A-

REGISTER

ADD CONTENT OF MEMORY TO A-

REGISTER

STOP

INCREMENT C-REGISTER

Page 2: Flow Charts1

FLOW CHART FOR 8-BIT SUBTRACTION

START

GET THE SUBTRAHEND IN A-REGISTER

SAVE CONENT OF A-REG IN B-REGISTER

GET THE MINUEND IN A-REGISTER

SUBTRACT THE CONTENT OF B-REGISTER FROM A-

REGISTER

STOP

Page 3: Flow Charts1

FLOW CHART FOR 8-BIT MULTIPLICATION

START

LOAD ADDRESS OF DATA IN HL PAIR

CHECK WHETHER

ZF=0

INCREMENT THE POINTER

USING HL AS ADDRESS POINTER GET I-DATA IN B-REGISTER AND II-DATA IN C-

REGISTER

ADD THE CONTENT OF C-REGISTER TO A-REGISTER

DECREMENT B-REGISTER

STORE THE RESULT IN MEMORY

STOP

YES NO

Page 4: Flow Charts1

FLOW CHART FOR 8-BIT DIVISION

START

GET THE DIVISOR IN A-REGISTER AND MOVE TO B-REGISTER

CHECK WHETHER

CY=0

GET THE DIVIDEND IN A-REGISTER

CLEAR C-REGISTER (QUOTIENT)

COMPARE B-REGISTER AND A-REGISTER

MOVE THE CONTENT OF C-REGISTER TO A-REGISTER AND STORE QUOTIENT

IN MEMORY

STOP

YES

NO

SUBTRACT CONTENT OF B-REG FROM A-REG

INCREMENT QUOTIENT (C-REGISTER)

STORE THE REMAINDER (A-REGISTER) IN MEMORY

Page 5: Flow Charts1

FLOW CHART FOR 16-BIT ADDITION

START

[L][4050H][H][4051H]

IS THERE A CARRY

[DE][HL]

[L][4052H][H][4053H]

[A]00H

[HL][HL]+ [DE]

[A][A]+1

[4054][L]

STOP

[4055][H]

[4056][A]

YES

NO

Page 6: Flow Charts1

FLOW CHART FOR 16-BIT SUBTRACTION

START

[L][4050H][H][4051H]

IS THERE A BORROW

[DE][HL]

[L][4052H][H][4053H]

[HL][HL]- [DE]

[C][C]+1

[4054][L]

STOP

[4055][H]

[4056][L]

YES

NO

Page 7: Flow Charts1

FLOW CHART FOR 16-BIT MULTIPLICATION

START

[L][4200H][H][4201H]

IS CARRY FLAG SET

SPHL

[L][4202H][H][4203H]

[DE][HL]

[HL][HL]+ [SP]

[BC][BC]+1

STOP

[4204][L][4205][H]

NO

[HL][0000][BC][0000]

[DE][DE]+1

IS ZERO FLAG SET

[4204][L][4205][H]

NO

YES

YES

Page 8: Flow Charts1

FLOW CHART FOR 16-BIT DIVISION

START

[L][4200H][H][4201H]

HL [DE]

[L][4050H][H][4051H]

BC0000H

[BC][BC]-1HLHL+DE

[BC][BC]+1

STOP

NO

[L][4054][H][4055]

AC

IS CARRY FLAG SET

YES

AL: AAE: LA

AH: AA-H-Br:

HA

A

A

[4056]A

AB

[4057]A

Page 9: Flow Charts1

FLOW CHART FOR 8-BIT BCD ADDITION

START

GET THE I-DATA IN ‘A’ & MOVE IT TO B REGISTER

CLEAR C-REGISTER FOR CARRY

ADD THE CONTENT OF B-REGISTER TO A-REGISTER AND PERFORM

DECIMAL ADJUST AFTER ADDITION

STORE THE SUM IN MEMORY

GET II-DATA IN A-REGISTER

MOVE THE CONTENT OF C-REGISTER TO A-REGISTER AND STORE IN MEMORY

STOP

CHECK WHETHER

CY=0

INCREMENT C-REGISTER FOR CARRY

NO

YES

Page 10: Flow Charts1

FLOW CHART FOR 16-BIT BCD ADDITION

START

GET THE LOW ORDER 2DIGITS OF I-DATA IN ‘A’ & MOVE IT TO B

CLEAR C-REGISTER FOR CARRY

ADD THE CONTENT OF B TO A AND PERFORM DAA STORE THE

RESULT IN MEMORY

A

STORE THE SUM IN MEMORY

GET THE LOW ORDER 2 DIGITS OF II-DATA IN A-REGISTER

GET THE HIGH ORDER 2DIGITS OF I-DATA IN ‘A’ & MOVE IT TO B

GET THE LOW ORDER 2 DIGITS OF II-DATA IN A-REGISTER

IS CARRY FLAG SET

ADD THE CONTENT OF B AND CARRY TO PERFORM DAA

A

INCREMENT C-REGISTERYES

NO

MOVE THE CONTENT OF C-REGISTER TO A-REGISTER AND STORE IN MEMORY

STOP

Page 11: Flow Charts1

FLOW CHART FOR 8-BIT BCD SUBTRACTION

START

GET THE LOW BYTE OF SUBTRAHEND IN A AND MOVE TO ‘B’

GET THE LOW BYTE OF MINUEND IN ‘A’

GET THE HIGH BYTE OF SUBTRAHEND IN ‘A’ AND MOVE TO ‘B’

PERFORM THE SUBTRACTION OF LOW BYTE AND STORE THE RESULT IN

MEMORY

GET THE HIGH BYTE OF MINUEND IN ‘A’

SUBTRACT THE CONTENT OF B-REGISTER AND CARRY FROM A-

REGISTER

STORE THE RESULT IN MEMORY

STOP

Page 12: Flow Charts1

FLOW CHART FOR HEXA TO ASCII CONVERSION

START

GET THE HEXA DATA IN A-REGISTER AND STORE IT IN B-REGISTER

MASK THE UPPER NIBBLE OF THE DATA

STORE ASCII CODE (A-REGISTER) IN MEMORY

MOVE HEXA DATA FROM B-REGISTER TO A-REGISTER AND MASK THE LOWER NIBBLE

ROTATE THE CONTENT OF A-REGISTER; 4-TIMES LEFT

STOP

STORE THE ASCII CODE (A-REGISTER) IN MEMORY

CALL SUBROUTINE SUB 1 TO GET THE ASCII COE FOR

UPPER NIBBLE IN A-

CALL SUBROUTINE SUB1 TO GET THE ASCII CODE FOR

LOWER NIBBLE IN A-

Page 13: Flow Charts1

FLOW CHART FOR SUBROUTINE SUB1

START

COMPARE THE CONTENT OF A-REGISTER WITH 0AH

CHECK WHETHER

CY=1

ADD 30H TO A-REGISTER

RETURN TO MAIN PROGRAM

ADD 07H TO A-REGISTER

NO

YES

Page 14: Flow Charts1

FLOW CHART FOR ASCII TO HEXA CODE CONVERSION

START

LOAD THE GIVEN DATA IN A-REGISTER

CHECK WHETHER

CY=1

SUBTRACT 07H FROM A-REGISTER

SUBTRACT 30H FROM A-REGISTER

COMPARE THE CONTENT OF A-REGISTER WITH 0AH

STORE THE RESULT

STOP

YES

NO

Page 15: Flow Charts1

FLOW CHART FOR BCD TO BINARY CONVERSION

START

LOAD THE GIVEN DATA IN A-REGISTER

MASK THE UPPER NIBBLE OF THE BINARY DATA IN A-REGISTER

MASK THE LOWER NIBBLE OF THE BINARY DATA IN A-REGISTER

MOVE THE CONTENT IN A-REGISTER TO C-

REGISTER

ROTATE THE UPPER NIBBLE TO LOWER NIBBLE POSITION

MOVE THE CONTENT IN A-REGISTER TO B-REGISTER

MOVE THE IMMEDIATE DATA OF 00H IN A-REGISTER

A

A

MOVE THE IMMEDIATE DATA OF 0AH IN A-REGISTER

ADD THE CONTENT OF D-REGISTER WITH A-REGISTER

ADD THE CONTENT OF C-REGISTER WITH A-REGISTER

DECREMENT B-REGISTER

IF ZERO FLAG IS

SET

ADD THE CONTENT OF C-REGISTER WITH A-REGISTER

STOP

NO

YES

Page 16: Flow Charts1

FLOW CHART FOR BINARY TO BCD CONVERSION

START

GET THE I-DATA IN A-REGISTER

MOVE 64H IN B-REGISTER

MOVE 0AH IN C-REGISTER

MOVE 00H IN D-REGISTER

MOVE 00H IN E-REGISTER

COMPARE B-REGISTER WITH A-REGISTER

IF CHECK CY=1

MOVE 0AH IN C-REGISTER

INCREMENT E-REGISTER

JUMP

B

A

NO

YES

Page 17: Flow Charts1

AB

COMPARE C-REGISTER WITH A-REGISTER

CHECK IF, CY=1

SUBTRACT C-REGISTER WITH A-REGISTER

INCREMENT D-REGISTER

JUMP

STORE THE RESULT IN MEMORY

MOVE D-REGISTER TO A-REGISTER

STORE THE RESULT IN MEMORY

MOVE E-REGISTER WITH A-REGISTER

STORE THE RESULT IN MEMORY

STOP

YES

NO

Page 18: Flow Charts1

FLOW CHART FOR TRANSFER CONTENTS TO OVERLAPPING MEMORY BLOCKS

START

MOVE THE IMMEDIATE DATA OF 06H IN C-REGISTER

LOAD THE CONTENT OF MEMORY LOCATION IN HL REGISTER PAIR

LOAD THE CONTENT OF MEMORY LOCATION IN DE REGISTER PAIR

MOVE THE CONTENT IN M-REG. TO A-REG.

STORE THE RESULT IN DE REG. PAIR

DECREMENT HL REGISTER PAIR

DECREMENT DE REGISTER PAIR

DECREMENT C-REGISTER

IF ZERO FLAG IS

SET

STOP

YES

NO

Page 19: Flow Charts1

FLOW CHART FOR TRANSFER CONTENTS TO NON-OVERLAPPING MEMORY BLOCKS

START

MOVE THE IMMEDIATE DATA OF 06H IN C-REGISTER

LOAD THE CONTENT OF MEMORY LOCATION IN HL REGISTER PAIR

LOAD THE CONTENT OF MEMORY LOCATION IN DE REGISTER PAIR

MOVE THE CONTENT IN M-REG. TO A-REG.

STORE THE RESULT IN DE REG. PAIR

INCREMENT HL REGISTER PAIR

INCREMENT DE REGISTER PAIR

DECREMENT C-REGISTER

IF ZERO FLAG IS

SET

STOP

NO

YES

Page 20: Flow Charts1

FLOW CHART FOR 16-BIT ADDITION USING 8086

OBSERVATION (16-Bit addition)

INPUT OUTPUTADDRESS DATA ADDRESS DATA

MOVE THE CONTENT OF MEMORY LOCATION TO AX REGISTER

MOVE THE CONTENT OF MEMORY LOCATION TO BX REGISTER

START

ADD THE CONTENT OF AX WITH BX

MOVE THE RESULT IN MEMORY

STOP

Page 21: Flow Charts1

FLOW CHART FOR 16-BIT SUBTRACTION USING 8086

OBSERVATION (16-Bit Subtraction)

INPUT OUTPUTADDRESS DATA ADDRESS DATA

MOVE THE CONTENT OF MEMORY LOCATION TO AX REGISTER

MOVE THE CONTENT OF MEMORY LOCATION TO BX REGISTER

START

SUBTRACT THE CONTENT OF AX WITH BX

MOVE THE RESULT IN MEMORY

STOP

Page 22: Flow Charts1

FLOW CHART FOR 16-BIT MULTIPLICATION USING 8086

OBSERVATION (16-Bit Multiplication)

INPUT OUTPUTADDRESS DATA ADDRESS DATA

MOVE THE CONTENT OF MEMORY LOCATION TO AX REGISTER

MOVE THE CONTENT OF MEMORY LOCATION TO BX REGISTER

START

MULTIPLY THE CONTENT OF AX WITH BX

MOVE THE RESULT IN MEMORY

STOP

Page 23: Flow Charts1

FLOW CHART FOR 16-BIT DIVISION USING 8086

OBSERVATION (16-Bit Division)

INPUT OUTPUTADDRESS DATA ADDRESS DATA

MOVE THE CONTENT OF MEMORY LOCATION TO AX REGISTER

MOVE THE CONTENT OF MEMORY LOCATION TO BX REGISTER

START

DIVIDE THE CONTENT OF BX WITH AX

MOVE THE RESULT IN MEMORY

STOP