Computer Science, asked by hinarathod52, 17 days ago

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

Answered by on04315
0

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.

Attachments:
Similar questions