Tuesday, 14 November 2017 0 comments

BCD to binary conversion in 8085

bcd to binary conversion in 8085bcd to binary conversion in 8085


Sample Problem:
(2200H) = 67H
(2300H) = 6 x OAH + 7 = 3CH + 7 = 43H
Source Program:
       LDA 2200H                : Get the BCD number
       MOV B, A                : Save it
       ANI OFH                : Mask most significant four bits
       MOV C, A                : Save unpacked BCDI in C register
       MOV A, B                : Get BCD again
       ANI FOH                : Mask least significant four bits
       RRC                        : Convert most significant four bits into unpacked BCD2
       RRC
       RRC
       RRC
       MOV B, A                : Save unpacked BCD2 in B register
       XRA A                        : Clear accumulator (sum = 0)
       MVI D, 0AH                : Set D as a multiplier of 10
Sum:   ADD D                : Add 10 until (B) = 0
       DCR B                        : Decrement BCD2 by one
       JNZ SUM                : Is multiplication complete? i if not, go back and add again
       ADD C                : Add BCD1
       STA 2300H                : Store the result
       HLT                        : Terminate program execution
Monday, 13 November 2017 0 comments

BCD to HEX conversion in 8085 Micoprocessor

bcd to hex conversion in 8085



Algorithm
1. Initialize memory pointer to 4150 H
2. Get the Most Significant Digit (MSD)
3. Multiply the MSD by ten using repeated addition
4. Add the Least Significant Digit (LSD) to the result obtained in previous step
5. Store the HEX data in Memory

Program

     LXI H,5000
     MOV A,M      ;Initialize memory pointer
     ADD A        ;MSD X 2
     MOV B,A      ;Store MSD X 2
     ADD A        ;MSD X 4
     ADD A        ;MSD X 8
     ADD B        ;MSD X 10
     INX H        ;Point to LSD
     ADD M        ;Add to form HEX
     INX H
     MOV M,A      ;Store the result
     HLT

Result
Input:
Data 0: 02H in memory location 5000
Data 1: 09H in memory location 5001
Output:
Data 0: 1DH in memory location 5002
Sunday, 12 November 2017 0 comments

How to Find Subtraction of two 8 bit numbers 8085 Microprocessor

SUBTRACTION OF TWO 8 BIT NUMBERS | How to Find Subtraction of two 8 bit numbers 8085 Microprocessor


AIM:
     To perform the subtraction of two 8 bit numbers using 8085.
   
ALGORITHM:
     1. Start the program by loading the first data into Accumulator.
        Move the data to a register (B register).
     2. Get the second data and load into Accumulator.
     3. Subtract the two register contents.
     4. Check for carry.
     5. If carry is present take 2’s complement of Accumulator.
     6. Store the value of borrow in memory location.
     7. Store the difference value (present in Accumulator) to a memory
     8. location and terminate the program.
 
PROGRAM:
          MVI C, 00I Initialize C to 00
          LDA 4150     Load the value to Acc.
          MOV B, A    Move the content of Acc to B register.
          LDA 4151     Load the value to Acc.
          SUB B
          JNC LOOP   Jump on no carry.
          CMA           Complement Accumulator contents.
          INR A         Increment value in Accumulator.
          INR C         Increment value in register C
LOOP: STA 4152   Store the value of A-reg to memory address.
          MOV A, C    Move contents of register C to Accumulator.
          STA 4153    Store the value of Accumulator memory address.
          HLT         Terminate the program.
OBSERVATION:
            Input: 06 (4150)
                    02 (4251)
            Output: 04 (4152)
                    01 (4153)
                 
RESULT:
     Thus the program to subtract two 8-bit numbers was executed
Saturday, 11 November 2017 0 comments

ADDITION OF TWO 8 BIT NUMBERS

ADDITION OF TWO 8 BIT NUMBERS


AIM:
 To perform addition of two 8 bit numbers using 8085.
ALGORITHM:
 1) Start the program by loading the first data into Accumulator.
 2) Move the data to a register (B register).
 3) Get the second data and load into Accumulator.
 4) Add the two register contents.
 5) Check for carry.
 6) Store the value of sum and carry in memory location.
 7) Terminate the program.

PROGRAM:

 MVI C, 00   'Initialize C register to 00
 LDA 4150   'Load the value to Accumulator.
 MOV B, A   'Move the content of Accumulator to B register.
 LDA 4151   'Load the value to Accumulator.
 ADD B    'Add the value of register B to A
 JNC LOOP   'Jump on no carry.
 INR C     'Increment value of register C
 LOOP: STA 4152  'Store the value of Accumulator (SUM).
 MOV A, C   'Move content of register C to Acc.
 STA 4153   'Store the value of Accumulator (CARRY)
 HLT    'Halt the program.

OBSERVATION:

 Input: 80 (4150)
  80 (4251)
 Output: 00 (4152)
  01 (4153)
RESULT:
 Thus the program to add two 8-bit numbers was executed.
0 comments

How to Find 8085 division of two 8 bit numbers

DIVISION OF TWO 8 BIT NUMBERS How to Find 8085 division of two 8 bit numbers


AIM:
     To perform the division of two 8 bit numbers using 8085.
    
ALGORITHM:
     1) Start the program by loading HL register pair with address of memory location.
     2) Move the data to a register(B register).
     3) Get the second data and load into Accumulator.
     4) Compare the two numbers to check for carry.
     5) Subtract the two numbers.
     6) Increment the value of carry .
     7) Check whether repeated subtraction is over and store the value of product and
        carry in memory location.
     8) Terminate the program.
    
PROGRAM:
               LXI  H, 4150
               MOV  B,M      Get the dividend in B – reg.
               MVI  C,00       Clear C – reg for qoutient
               INX  H
               MOV A,M       Get the divisor in A – reg.
NEXT:     CMP B             Compare A - reg with register B.
               JC  LOOP         Jump on carry to LOOP
               SUB  B             Subtract A – reg from B- reg.
               INR C               Increment content of register C.
               JMP NEXT      Jump to NEXT
 LOOP:    STA 4152         Store the remainder in Memory
               MOV A,C
               STA 4153         Store the quotient in memory
               HLT                  Terminate the program.


OBSERVATION:  
    Input:
 F (4150)
 FF (4251)
    Output:
 01 (4152) ---- Remainder
     FE (4153) ---- Quotient
    
RESULT:
Thus the program to divide two 8-bit numbers was executed.
0 comments

How to Find LARGEST NUMBER IN AN ARRAY OF DATA

LARGEST NUMBER IN AN ARRAY OF DATA


AIM:
     To find the largest number in an array of data using 8085 instruction set.
    
ALGORITHM:
     1) Load the address of the first element of the array in HL pair
     2) Move the count to B – reg.
     3) Increment the pointer
     4) Get the first data in A – reg.
     5) Decrement the count.
     6) Increment the pointer
     7) Compare the content of memory addressed by HL pair with that of A - reg.
     8) If Carry = 0, go to step 10 or if Carry = 1 go to step 9
     9) Move the content of memory addressed by HL to A – reg.
     10) Decrement the count
     11) Check for Zero of the count. If ZF = 0, go to step 6, or if ZF = 1 go to next step.
     12) Store the largest data in memory.
     13) Terminate the program.
    
PROGRAM:
             LXI H,4200 Set pointer for array
             MOV B,M    Load the Count
             INX H         Set 1st element as largest data
             MOV A,M
             DCR B          Decrements the count
LOOP:  INX H
             CMP M           f A- reg > M go to AHEAD
             JNC AHEAD
             MOVA,M   Set the new value as largest
AHEAD:DCR B
             JNZ LOOP     Repeat comparisons till count = 0
             STA 4300     Store the largest value at 4300
             HLT


OBSERVATION:
                  
    Input: 05 (4200) ----- Array Size
                  
    Output: 0A (4201)
                F1 (4202)
               1F (4203)
                26 (4204)
                FE (4205)
                FE (4300)
   
RESULT:
Thus the program to find the largest number in an array of data was executed
0 comments

How to find smallest number in array in 8085

how to find smallest number in array in 8085


AIM:
     To find the smallest number in an array of data using 8085 instruction set.
    
ALGORITHM:
     1) Load the address of the first element of the array in HL pair
     2) Move the count to B – reg.
     3) Increment the pointer
     4) Get the first data in A – reg.
     5) Decrement the count.
     6) Increment the pointer
     7) Compare the content of memory addressed by HL pair with that of A - reg.
     8) If carry = 1, go to step 10 or if Carry = 0 go to step 9
     9) Move the content of memory addressed by HL to A – reg.
     10) Decrement the count
     11) Check for Zero of the count. If ZF = 0, go to step 6, or if ZF = 1 go to next step.
     12) Store the smallest data in memory.
     13) Terminate the program.
    
PROGRAM:
             LXI H,4200 Set pointer for array
             MOV B,M         Load the Count
             INX  H         Set 1st element as largest data
             MOV A,M
             DCR B         Decremented the count
LOOP:    INX H
             CMP M         If A- reg < M go to AHEAD
             JC AHEAD
             MOV A,M        Set the new value as smallest
AHEAD:DCR B
             JNZ LOOP   Repeat comparisons till count = 0
             STA 4300        Store the largest value at 4300
             HLT
OBSERVATION:
                   05 (4200) ----- Array Size
    Input:
                   0A (4201)
                   F1 (4202)
                   1F (4203)
                   26 (4204)
                   FE (4205)
                   0A (4300)
    Output:
   
RESULT:
Thus the program to find the smallest number in an array of data was executed
 
;