Tuesday, March 11, 2014

multiplication in assembly language

.model small
.stack 64
.data
msg1 db 'enter 1st number ','$'
msg2 db ' enter 2nd number ','$'
msg3 db ' result is : ' ,'$'
a db 10 dup(0),'$'
b db 10 dup(0),'$'
c db 10 dup(0),'$'
b1 db ?
m dw 0
n dw 0
k dw 0

.code
main proc near
mov ax,@data
mov ds,ax
mov ah,9
lea dx,msg1
int 21h


lea si,a
a100:
mov ah,1
int 21h
cmp al,'$'
je bc
mov [si],al
inc si
inc m
inc k
bc:
jne a100

mov ah,9
lea dx,msg2
int 21h
lea si,b
pawan2:
mov ah,1h
int 21h
cmp al,'$'
je cc
mov [si],al
inc si
inc n
cc:
jne pawan2



dec m
dec n

lea si,a
add si,m
lea di,b
add di,n
inc m
inc n
lea bx,c
mov cx,00
a10:
mov cx,k
add bx,m
a20:
mov al,[di]
and al,0fh
mov b1,al
mov al,[si]
and al,0fh
mul b1
aam
add [bx],al
   aaa
dec si
dec bx
add [bx],ah
loop a20
dec n
dec di
cmp n,0
jne a10
lea bx,c
add bx,m


inc m
mov cx,m

a30:
or byte ptr[bx],30h
dec bx
loop a30

mov ah,9
lea dx,c
int 21h


mov ah,4ch
int 21h
main endp
end main

No comments:

Post a Comment

Contributors

Translate