## Statement: Write an assembly language program to multiply 2 BCD numbers

### 8085 program to multiply two bcd numbers

MVI C, Multiplier : Load BCD multiplier
MVI B, 00 : Initialize counter
LXI H, 0000H : Result = 0000
MVI E, multiplicand : Load multiplicand
MVI D, 00H : Extend to 16-bits
BACK: DAD D : Result Result + Multiplicand
MOV A, L : Get the lower byte of the result
DAA : Adjust the lower byte of result to BCD.
MOV L, A : Store the lower byte of result
MOV A, H : Get the higher byte of the result
ACI, 00H
DAA : Adjust the higher byte of the result to BCD
MOV H, A : Store the higher byte of result.
MOV A, B : [Increment
DAA : adjust it to BCD and
MOV B,A : store it]
CMP C : Compare if count = multiplier
JNZ BACK : if not equal repeat
HLT : Stop
________________________________________________________________________
So Guys here are the list of 8085 programs for beginners who are currently learning 8085 microprocessor and also for those who are looking for8085 microprocessor programs pdf here is all and you can collect it. In this you can get access to microprocessor 8085 programming tutorial which are all tutored and not only this in this we have microprocessor 8085 programs with opcode.

## 8085 program for 2's complement of a number

Finding Two's complement of a number, 2's complement program in 8085
2's complement of 8 bit number in 8085

Statement: Find the 2's complement of the number stored at memory location 4200H and store the complemented number at memory location 4300H.

Sample problem:

(4200H) = 55H
Result = (4300H) = AAH + 1 = ABH

Source program:

LDA 4200H            : Get the number
CMA                      : Complement the number
STA 4300H            : Store the result
HLT                       : Terminate program execution

## 8085 program to find one's complement

Finding one's complement of a number

Statement: Find the l's complement of the number stored at memory location 4400H and store the complemented number at memory location 4300H.

Sample problem:

(4400H) = 55H
Result = (4300B) = AAB
Source program:

LDA 4400B  : Get the number
CMA            : Complement number
STA 4300H  : Store the result
HLT              : Terminate program execution
Add contents of two memory locations
Statement: Add the contents of memory locations 40001H and 4001H and place the result in the memory locations 4002Hand 4003H.
Sample problem:

(4000H) = 7FH
(400lH)  = 89H
Result    = 7FH + 89H = lO8H
(4002H) = 08H
(4003H) = 0lH

Source program:

LXI H, 4000H  : HL Points 4000H
MOV A, M       : Get first operand
INX H             : HL Points 4001H
INX H             : HL Points 4002H
MOV M, A       : Store the lower byte of result at 4002H
MVI A, 00       : Initialize higher byte result with 00H
INX H             : HL Points 4003H
MOV M, A       : Store the higher byte of result at 4003H
HLT               : Terminate program execution
Program to Exchange contents of memory locations 8085 Microprocessor

Statement: Exchange the contents of memory locations 2000H and 4000H

Program 1:

LDA 2000H : Get the contents of memory location 2000H into accumulator
MOV B, A    : Save the contents into B register
LDA 4000H : Get the contents of memory location 4000Hinto accumulator
STA 2000H : Store the contents of accumulator at address 2000H
MOV A, B    : Get the saved contents back into A register
STA 4000H : Store the contents of accumulator at address 4000H

Program 2:
LXI H 2000H          : Initialize HL register pair as a pointer to memory location 2000H.
LXI D 4000H         : Initialize DE register pair as a pointer to memory location 4000H.
MOV B, M     : Get the contents of memory location 2000H into B register.
LDAX D        : Get the contents of memory location 4000H into A register.
MOV M, A     : Store the contents of A register into memory location 2000H.
MOV A, B     : Copy the contents of B register into accumulator.
STAX D        : Store the contents of A register into memory location 4000H.
HLT              : Terminate program execution.

In Program 1, direct addressing instructions are used, whereas in Program 2, indirect addressing instructions are used.
Program 1:

MVI A, 52H  : Store 32H in the accumulator
STA 4000H  : Copy accumulator contents at address 4000H
HLT              : Terminate program execution

Program 2:

LXI H           : Load HL with 4000H
MVI M                   : Store 32H in memory location pointed by HL register pair (4000H)
HLT              : Terminate program execution

The result of both programs will be the same. In program 1 direct addressing instruction is used, whereas in program 2 indirect addressing instruction is used.

;