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    
                       
             add dl,48  
                       
             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]
      add SumOfnegn,dx
      add si,2
      loop cycle
      jmp finish
      
ck:
   mov bx,vett[si] 
   add SumOfposn,bx
   add si,2
   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

Hey guys i geuss i discovered my mistake ..i will tell so that some one will benefit...Actually since i am using a macro which is different than procedure ,it is considered as an extension of the program so that is why i got "Duplication " To solve such problem just type local label1,....as many labels you want at the beginning of the macro . Bye

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.