Object-: Write an 8085 assembly language program to divide two 8-bit numbers.
INPUT - :
6000 H = 02 H DIVISOR
6001 H = 08 H DIVIDEND
OUTPUT - :
6002 H = 00 H REMAINDER
6003 H = 04 H QUOTIENT
Address Mnemonics Operand Opcode Comment
7000 LDA 6000H 3A Load Divisor in Accumulator
7001 00
7002 60
7003 MOV B, A 47 Copy Divisor to Register B
7004 LDA 6001H 3A Load Dividend in Accumulator
7005 01
7006 60
7007 MOV C, 00H 0E Initialize register C for Quotient
7008 00
7009 CMP B B8 Compare the no. in B with the no. in
Accumulator
700A JC 7012H DA Jump if B>A to address 7010
700B 12
700C 70
700D INR C 0C Increment Register C (Quotient)
700E SUB B 90 Subtract B from A
Address Mnemonics Operand Opcode Comment
700F JMP 7009H C3 Repeat the above steps till A becomes
smaller than B
7010 09
7011 70
7012 STA 6002H 32 Store the remainder at memory address
6002H
7013 02
7014 60
7015 MOV A, C 79 Move the contents of C to Accumulator
7016 STA 6003H 32 Store the Quotient at memory address
6003H.
7017 03
7018 60
7019 HLT 76 Halt
PROCEDURE
INPUT DATA LOADING -:
INPUT -:
S. PRESS DISPLAY Memory Data
No. KEY Location
1. ANSHUMAN 6000H 02H
2. S Substut? 6001H 08H
3. CR Memory
4. CR Addr
5. 6000 6000
6. CR 6000 XX
7. 02 6000 02
8. CR 6001 XX
9. 08 6001 08
10. CR 6002 XX
PROCEDURE -:
PROGRAM LOADING -:
S. PRESS DISPLAY
No. KEY Address Mnemonics Operand Opcode
1. ANSHUMAN 7000 LDA 6000H 3A
2. S Substut? 7001 00
3. CR Memory 7002 60
4. CR Addr
5. 7000 7000
6. CR 7000 XX
7. 3A 7000 3A
8. CR 7001 XX
9. 00 7001 00
10. CR 7002 XX
11. 60 7002 60
12. CR 7003 XX
Address Mnemonics Operand Opcode
S. PRESS DISPLAY
No. KEY 7003 MOV B, A 47
13. 47 7003 47 7004 LDA 6001H 3A
14. CR 7004 XX 7005 01
15. 3A 7004 3A 7006 60
16. CR 7005 XX 7007 MOV C, 00H 0E
17. 01 7005 01 7008 00
18. CR 7006 XX 7009 CMP B B8
19. 60 7006 60
20. CR 7007 XX
21. 0E 7007 0E
22. CR 7008 XX
23. 00 7008 00
24. CR 7009 XX
25. B8 7009 B8
26. CR 700A XX
S. PRESS DISPLAY Address Mnemonics Operand Opcode
No. KEY 700A JC 7012H DA
27. DA 700A DA 700B 12
28. CR 700B XX 700C 70
29. 12 700B 12 700D INR C 0C
30. CR 700C XX 700E SUB B 90
31. 70 700C 70 700F JMP 7009H C3
32. CR 700D XX 7010 09
33. 0C 700D 0C 7011 70
34. CR 700E XX
35. 90 700E 90
36. CR 700F XX
37. C3 700F C3
38. CR 7010 XX
39. 09 7010 09
40. CR 7011 XX
41. 70 7011 70
42. CR 7012 XX
S. PRESS DISPLAY Address Mnemonics Operand Opcode
No. KEY
7012 STA 6002H 32
43. 32 7012 32
7013 02
44. CR 7013 XX
7014 60
45. 02 7013 02
7015 MOV A, C 79
46. CR 7014 XX
7016 STA 6003H 32
47. 60 7014 60
7017 03
48. CR 7015 XX
7018 60
49. 79 7015 79
7019 HLT 76
50. CR 7016 XX
51. 32 7016 32
52. CR 7017 XX
53. 03 7017 03
54. CR 7018 XX
55. 60 7018 60
56. CR 7019 XX
57. 76 7019 76
58. CR 701A XX
EXECUTION OF THE PROGRAM -:
S. PRESS DISPLAY
No. KEY
22. ESC Command
23. G Goto?
24. CR Burst
25. CR Addr
26. 7000 7000
27. CR Command=
CHECKING RESULT -:
S. PRESS DISPLAY
No. KEY
1. ANSHUMAN
2. S Substut?
3. CR Memory
4. CR Addr
5. 6002 6002
6. CR 6002 00
7. CR 6003 04
RESULT -: INPUT - :
6000 H = 02 H DIVISOR
6001 H = 08 H DIVIDEND
OUTPUT - :
6002 H = 00 H REMAINDER
6003 H = 04 H QUOTIENT