Source program :
- LXI H, 2200 : Initialize the memory pointer
- MOV E, M : Get multiplicand
- MVI D, 00H : Extend to 16-bits
- INX H : Increment memory pointer
- MOV A, M : Get multiplier
- LXI H, 0000 : Product = 0
- MVI B, 08H : Initialize counter with count 8
- MULT: DAD H : Product = product x 2
- RAL
- JNC SKIP : Is carry from multiplier 1 ?
- DAD D : Yes, Product =Product + Multiplicand
- SKIP: DCR B : Is counter = zero
- JNZ MULT : no, repeat
- SHLD 2300H : Store the result
- HLT : End of program
|
Flowchart for program
|
0 Comments