Flow Charts1
-
Upload
thiagu-rajiv -
Category
Documents
-
view
35 -
download
1
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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-
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
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
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
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
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
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
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
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
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
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
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