Wednesday, February 23, 2011

16 bit addition

.model small
.data
m1 db 10,13,'Enter 1st no:$'
m2 db 10,13,'Enter 2nd no:$'
m3 db 10,13,'Answer is:$'
a dw 0
b dw 0
c dw 0
.code
mov ax,@data
mov ds,ax

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


call accept
mov a,bx

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

call accept
mov b,bx

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

mov ax,a
mov bx,b

upp:
add bx,ax
jnc down
mov ah,02h
mov dl,31h
int 21h

down:
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