Problem – Write a program in 8086 microprocessor to multiply two 8-bit numbers, where numbers are stored from offset 500 and store the result into offset 600.
Examples – Inputs and output are given in Hexadecimal representation.
- Load data from offset 500 to register AL (first number)
- Load data from offset 501 to register BL (second number)
- Multiply them (AX=AL*BL)
- Store the result (content of register AX) to offset 600
|400||MOV SI, 500||SI=500|
|403||MOV DI, 600||DI=600|
|406||MOV AL, [SI]||AL<-[SI]|
|409||MOV BL, [SI]||BL<-[SI]|
|40D||MOV [DI], AX||AX->[DI]|
- MOV SI, 500 set 500 to SI
- MOV DI, 600 set 600 to DI
- MOV AL, [SI] load contents of offset SI to register AL
- INC SI increase value of SI by 1
- MOV BL, [SI] load contents of offset SI to register BL
- MUL BL multiply contents of register AL and BL
- MOV [DI], AX store the result (contents of register AX) to offset DI
- HLT End.