**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.

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.

It's very straightforward to find out any matter on web as compared to textbooks, as I found this piece of writing at this website.

ReplyDeleteTake a look at my web page raspberry ketones

thank u

ReplyDeletethis program is executable but coments are not right.

ReplyDeletethanks....

Deleteyour are good at programming.............

Deletehahaha what a dumbass programm check mine out more simple:

ReplyDeleteLXI H 3000h

MOV A M

INX H

MOV B M

MVI C 00h

L: SUB B

INR C

CMP B

JNC L

REMAINDER: STA 2051h

MOV A C

QUOTIENT: STA 2050h

HLT

store dividend at 3000h and divisor at 3001h rest is history hehe

Deleteits not correct.you are substracting before you comparing the numerator and denominator .

Deleteits not correct.you are substracting before you comparing the numerator and denominator .

Deleteyes

Deletegood work , useful and innovative to find exp on web

ReplyDeletelogic problem,you're storing the divisor if carry flag is set but we need to store 0 when divisor is more than

ReplyDeletethe

dividend

There are critical mistakes in the program:

ReplyDelete1) CMP B is wrong because you comparing divisor with dividend, i.e., divisor-dividend so your logic fails

2) use of JMP which makes the program run infinite time

Actual Program:

mvi D,00h

lda 4150h

mov B,A

lda 4151h

mov C,A

cmp B

jnc x

mov A,B

y: sub C

inr D

cmp C

jnc y

sta 4152

mov A,D

sta 4153

hlt

x: mov A,B

sta 4152

mov A,D

sta 4153

hlt