Home » Programming in 8085

Programming in 8085

Let’s see some simple example to demonstrate the use of some important instructions of 8085.

The memory addresses given in the program are for a particular microprocessor kit. These addresses can be changed to suit the microprocessor kit available in your system.

Store 8-bit data in memory

Program

Store 8-bit data in memory using direct addressing

Store 8-bit data in memory using indirect addressing

Add two 8-bit numbers

Example

(2501 H) = 99H   (2502 H) = 39H   Result (2503 H) = 99H + 39H = D2H    Since,     1 0 0 1 1 0 0 1 (99H)    + 0 0 1 1 1 0 0 1 (39H)      1 1 0 1 0 0 1 0 (D2H)      

Program

Subtract two 8-bit numbers

Example

(2501 H) = 49H   (2502 H) = 32H   Result (2503 H) = 49H - 32H = 17H    

Program

Add two 16-bits numbers

Add the 16-bit number in memory locations 2501H and 2502H to the 16-bit number in memory locations 2503H and 2504H. The most significant eight bits of the two numbers to be added are in memory locations 2502H and 4004H. Store the result in memory locations 2505H and 2506H with the most significant byte in memory location 2506H.

Example

(2501H) = 15H  (2502H) = 1CH  (2503H) = B7H  (2504H) = 5AH    Result = 1C15 + 5AB7H = 76CCH    (2505H) = CCH  (2506H) = 76H  

Program

Add two 16-bits number with ADD and ADC instruction

Add two 16-bits numbers with DAD instruction

Subtract two 16-bit numbers

Example

(2500H) = 19H  (2501H) = 6AH  (2504H) = 15H (2503H) = 5CH  Result    = 6A19H ? 5C15H = OE04H  (2504H) = 04H  (2505H) = OEH   

Program

Add contents of two memory locations

Example

(2500H) = 7FH  (2501H) = 89H  Result    = 7FH + 89H = lO8H  (2502H) = 08H  (2503H) = 01H   

Program

Finding 1’s complement of a number

To obtain one’s complement of a number its 0 bits are replaced by 1 and 1 by 0.

Example 1

(2501H) = 96 H = 1001 0110  (9)    (6)  One's complement = 0110 1001 = 69 H  Result = (2502H) = 69H  

Example 2

(2501H) = E4H  Result = (2502H) = 1BH  

Program

The number is placed in the memory location 2501 H.

The result is stored in the memory location 2502 H.

Finding 2’s complement of a number

2’s complement of a number is obtained by adding 1 to the 1’s complement of the number.

Example

To find the two's complement of 96.  96 = 1001 0110   1's complement = 0110  1001 = 69   +     0000  0001   2's complement = 0110  1010 = 6A     

Program

The number is placed in the memory location 2501 H.

The result is to be stored in the memory location 2502 H.

Count number of 1’s in a number

Example

2501 H = 04  2502 H = 34 H  2503 H = A9H  2504 H = 78H  2505 H = 56H  Result = 2503 H = A9H  

Program

Count number of 1’s of the content of the register D and store the count in the register B.

Find larger of two numbers

Example

2501H = 98 H  2502H = 87H  Result = 98H (2503H)  

Program

The first number 98H is placed in the memory location 2501 H.
The second number 87H is placed in the memory location 2502H.
The result is stored in the memory location 2503 H.

LXI H, 2501H : "Address of first number in H-L pair"  MOV A, M : "1stt number in accumulator"  INX H     : "Address of 2nd number in H-L pair"  CMP M     : "compare 2nd number with 1st number"  JNC AHEAD : "No, larger is in accumulator. Go to AHEAD"  MOV A, M : "Yes, get 2nd number in the accumulator"  STA 2503 H : "Store larger number in 2503H"  HLT         : "Stop"  

Find smaller of two numbers

Example

2501H = 84 H  2502H = 99 H  Result = 84 H(2503H)  

Program

The first number 84H is placed in the memory location 2501 H.

The second number 99H is placed in the memory location 2502H.

The result is stored in the memory location 2503 H.

LXI H, 2501H : "Address of first number in H-L pair"  MOV A, M : "1stt number in accumulator"  INX H     : "Address of 2nd number in H-L pair"  CMP M     : "compare 2nd number with 1st number"  JC AHEAD : "Yes, smaller number is in accumulator. Go to AHEAD"  MOV A, M : "No, get 2nd number in the accumulator"  STA 2503 H : "Store smaller number in 2503H"  HLT         : "Stop"  

Calculate the sum of series of even numbers

Example

2500 H = 4H  2501 H = 20H  2502 H = 15H  2503 H = 13H  2504 H = 22H  Result = 2505 H = 20+22= 42H  

Program

The numbers are placed in the memory locations 2501 to 2504H.

The sum is to be stored in the memory location 2450H.

As there are 4 numbers in the series, count = 04

The initial value of the sum is made 00. The even number of the series are taken one by one and added to the sum.

Calculate the sum of series of odd numbers

Example

2500 H = 4H  2501 H = 9AH  2502 H = 52H  2503 H = 89H  2504 H = 3FH  Result = 2505 H = 89H + 3FH= C8H  

Program

The numbers are placed in the memory locations 2501 to 2504H.

The sum is to be stored in the memory location 2450H.

As there are 4 numbers in the series, count = 04

The initial value of the sum is made 00. The odd number of the series are taken one by one and added to the sum.

Find the square of given number

Program

Find the square of 07 (decimal) using lookup table techniques.

The number 07 D is in the memory.

The result is to be stored in the memory location 2501H.

The table for square is stored from 2600 to 2609 H.

Separate even numbers from given numbers

Program

Let’s see the program to separate even numbers from the given list of 50 numbers and store them in other location starting from 2600H.

Starting location of 50 number list is 2500H.

You may also like