帮忙看下我下面这个程序哪有问题啊!问什么输出乱码阿!

data segment 
     mesg dw 1,2,3,4
     total dw 4 dup(?)
data ends
code segment 
     assume ds:data,cs:code
_begin: lea si,mesg
        mov cx,4   ;
        mov ax,0
again:add al,[si]
      adc ah,0
      inc si
      loop again
      mov total,ax
      mov dl,total
      mov ah,09h
      int 21h
      mov ah,4ch
      int 21h
code ends 
     end _begin