8086 program to Multiply two 8 bit numbers using successive addition method
03:01
ØØ Explanation :
·
Consider that a byte is present in the AL
register and second byte is present in the BL register.
·
We have to multiply the byte in AL with the byte
in BL.
·
We will multiply the numbers using successive
addition method.
·
In successive addition method, one number is
accepted and other number is taken as a counter. The first number is added with
itself, till the counter decrements to zero.
·
Result is stored in DX register. Display the
result, using display routine.
For
example : AL = 12 H, BL = 10 H
Result = 12H +
12H + 12H + 12H + 12H + 12H + 12H + 12H + 12H + 12H
Result = 0120 H
ØØ Algorithm :
Step
I : Initialise the data segment.
Step II : Get the first number.
Step III : Get the second number as counter.
Step IV : Initialize result = 0.
Step V : Result = Result + First number.
Step VI : Decrement counter
Step VII : If count ¹ 0, go to step V.
Step VIII : Display the result.
Step IX : Stop.
ØØ Flowchart : Refer
flowchart 11.
ØØ Program :
.model small
.data
a db 12H
b db 10H
.code
mov ax, @data ;
Initialize data section
mov ds, ax
mov al, a ;
Load number1 in al
mov bl, b ;
Load number2 in bl
mov ah, 0
mov
dx, 0 ;
intialize result
ad: add
dx, ax ; add numbers. Result in dx
dec
bl ;
dec number
cmp
bl, 0
jnz
ad
mov
ch, 04h ; Count of digits to be displayed
mov
cl, 04h ; Count to roll by 4 bits
mov
bx, dx ;
Result in reg bx
l2: rol
bx, cl ; roll bl so that msb comes to lsb
mov
dl, bl ;
load dl with data to be displayed
and
dl, 0fH ; get only lsb
cmp
dl, 09 ;
check if digit is 0-9 or letter A-F
jbe
l4
add
dl, 07 ; if letter add 37H else only add 30H
l4: add
dl, 30H
mov
ah, 02 ;
Function 2 under INT 21H (Display character)
int
21H
dec
ch ;
Decrement Count
jnz
l2
mov
ah, 4cH ; Terminate Program
int
21H
end
ØØ Result :
C:\programs>tasm
succmul.asm
Turbo
Assembler Version 3.0 Copyright (c) 1988, 1991 Borland
International
Assembling
file: succmul.asm
Error
messages: None
Warning
messages: None
Passes: 1
Remaining
memory: 438k
C:\programs>tlink
succmul
Turbo
Link Version 3.0 Copyright (c) 1987,
1990 Borland International
Warning: No
stack
C:\programs>succmul
0120
0 comments: