.MODEL SMALL .STACK .DATA msg db 'input number?$' msg1 db '1+2+...+$' msg2 db 'error input!!! retry it! $' odoa db 0dh,0ah,'$' t1 db 20 dup (?) tt db 20 dup (?) tab db '0123456789' .CODE MOV AX,@DATA MOV DS,AX ; tryagain: lea dx,msg mov ah,09 int 21h xor si,si ; rea: mov ah,01 ; input from kb int 21h cmp al,13 ; check enter!!! je proc1 cmp al,'0' ; check number!!! jl err cmp al,'9' jg err ; mov tt[si],al inc si jmp rea err: lea dx,odoa mov ah,09 int 21h ; lea dx,msg2 mov ah,09h int 21h jmp tryagain ; lea dx,odoa mov ah,09 int 21h ; proc1: lea dx,odoa mov ah,09 int 21h ; lea dx,msg1 mov ah,09 int 21h ; mov tt[si],'$' ; for ending lea dx,tt mov ah,09 int 21h ; mov dl,'=' mov ah,02 ; print '=' int 21h ; lea dx,odoa mov ah,09 int 21h ; mov ah,4ch int 21h END