Wednesday, February 23, 2011

32 Bit addition of two numbers

.model small
.data
m1 db 10,13,'Enter 1st 32bit no: $'
m2 db 10,13,'Enter 2nd 32bit no: $'
m3 db 10,13,'Addition is: $'
n1 dw 0
n2 dw 0
n3 dw 0
n4 dw 0
n5 dw 0
n6 dw 0


.code
mov ax,@data
mov ds,ax

mov ah,09h
lea dx,m1
int 21h

call accept
mov n1,bx

call accept
mov n2,bx

mov ah,09h
lea dx,m2
int 21h

call accept
mov n3,bx

call accept
mov n4,bx

mov ax,n2
add ax,n4

mov n5,ax

mov cx,n1
add cx,n3

mov n6,cx

mov ah,09h
lea dx,m3
int 21h

mov bx,n6

jnc down
mov ah,02h
mov dl,31h
int 21h

down:

call disp

mov bx,n5
call disp

mov ah,4ch
int 21h

accept proc
mov ah,01h
int 21h

sub al,30h
cmp al,09h
jle ok
sub al,07h

ok:
mov cl,04h
shl al,cl
mov bl,al

mov ah,01h
int 21h

sub al,30h
cmp al,09h
jle ok1
sub al,07h

ok1:
add bl,al
mov bh,bl

mov ah,01h
int 21h
sub al,30h
cmp al,09h
jle ok2
sub al,07h

ok2:
mov cl,04h
shl al,cl
mov bl,al

mov ah,01h
int 21h

sub al,30h
cmp al,09h
jle ok3
sub al,07h

ok3:
add bl,al
ret
endp

disp proc
mov ch,04h
mov cl,04
up:
rol bx,cl
mov al,bl
and al,0fh
add al,30h
cmp al,39h
jle ok5
add al,07h
ok5:
mov ah,02h
mov dl,al
int 21h
dec ch
jnz up
ret
endp
end

No comments:

Post a Comment