Could some one here tell me how to resolve the problem it says duplicate DecimalToString Dos that mean i cant use a macro twice in the same program if yes how to print more than one number Thanks in advance

;Author   :Alerwi Ali
; function: Calculate the sum of
;         both positive and negative elements of an array

;------------------------------------------;
;-----The macro to print a decimal---------;
;------------------------------------------;
DecimalToString macro numToBeprinted
; start of the macro
push ax
push bx
push cx     ;saving ax, bx, cx, dx to the stack
push dx

xor cx, cx  ; this basically do this: cx = 00000000
mov ax,numToBeprinted
mov bx, 10d

loop1: ; label we'll be using for a loop
xor dx, dx
div bx

push dx
inc  cx

cmp ax, 0

jnz loop1 ; loop until ax = 0

mov ah, 02

loop2: ; another label which we'll use use to create another loop

pop dx

int  21h
dec cx
jnz loop2
pop dx
pop cx
pop bx
pop ax

endm ;End of the macro
.model small
.stack
.data
size equ 15

vett dw 1,-3,-2,5,-45,21,5,-4,7,9,-3,0,-43,-6,15
SumOfposn dw 0
SumOfnegn dw 0
msg1 db 0DH,0AH,'The sum of pos nums  :$' msg2 db 0DH,0AH,'The sum of Nega nums :$'
.code
.startup

mov cx,size
xor si,si
xor bx,bx
xor dx,dx

cycle:
cmp vett[si],8000h
js ck
mov dx,vett[si]
loop cycle
jmp finish

ck:
mov bx,vett[si]
loop cycle

finish:
lea dx,msg1
mov ah,09h
int 21h

DecimalToString SumOfposn
lea dx,msg2
mov ah,09h
int 21h
DecimalToString SumOfnegn

.exit
end
1
Contributor
1