Write an 8085 Assembly Language Program (ALP) to multiply two numbers stored on Memory Locations 2050 H and 2051 H and store the result on Memory Location 2052 H.
Answers
Answer:
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
Starting address of program: 2000
Input memory location: 2050, 2051, 2052, 2053
Output memory location: 2054, 2055, 2056, 2057
Explanation:
Registers B, C, D, E, H, L and accumulator are used for general purpose.
LHLD 2050: load HL pair with address 2050.
SPHL: save the content of HL in stack pointer.
LHLD 2052: load H-L pair with address 2052.
XCHG: exchange the content of HL pair with DE.
LXI H, 0000H: make H as 00H and L as 00H.
LXI B, 0000H: make B as 00h and C as 00H
DAD SP: ADD HL pair and stack pointer.
JNC 2013: jump to address 2013 if there will be no carry.
INX B: increments BC register with 1.
DCX D: decrements DE register pair by 1.
MOV A, E: move the content of register E to accumulator.
ORA D: or the content of accumulator and D register.
JNZ 200E: jump to address 200E if there will be no zero.
SHLD 2054: store the result to memory address 2054 and 2055 from HL pair register.
MOV L, C: move the content of register C to L.
MOV H, B: move the content of register B to H.
SHLD 2056: store the result to memory address 2056 and 2057 from HL pair register.
HLT: terminates the program.