8086 program to multiply two 8 bit numbers
Last Updated :
22 May, 2018
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.
Algorithm –
- 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
- Stop
Program –
MEMORY ADDRESS |
MNEMONICS |
COMMENT |
400 |
MOV SI, 500 |
SI=500 |
403 |
MOV DI, 600 |
DI=600 |
406 |
MOV AL, [SI] |
AL<-[SI] |
408 |
INC SI |
SI=SI+1 |
409 |
MOV BL, [SI] |
BL<-[SI] |
40B |
MUL BL |
AX=AL*BL |
40D |
MOV [DI], AX |
AX->[DI] |
40F |
HLT |
END |
Explanation –
- 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.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...