sseg segment stack db 64 dup(?) sseg ends dseg segment maxlen db 21 actlen db ? string db 21 dup(?),'$' dseg ends cseg segment assume cs:cseg,ss:sseg,ds:dseg main proc far push ds xor ax,ax push ax mov ax,dseg mov ds,ax ;------------- lea dx,maxlen mov ah,10 int 21h mov cl,actlen xor ch,ch xor si,si xor al,al cmp cx,0 je over2 l1: cmp byte ptr string[si],',' jne over inc al over: inc si loop l1 over2: mov word ptr string[19],0A0Dh mov si,18 mov bl,10 _out: cbw idiv bl add ah,'0' mov string[si],ah dec si test al,al jnz _out dec si mov word ptr string[si],0A0Dh lea dx,string add dx,si mov ah,9 int 21h xor ax,ax int 16h ;------------- ret main endp cseg ends end main |