.MODEL SMALL .DATA msg db 'input number?$' odoa db 0dh,0ah,'$' msg1 db 'error input$' tab db '0123456789' .CODE public getnum extrn tt:byte getnum proc near 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,msg1 mov ah,09h int 21h jmp tryagain ; lea dx,odoa mov ah,09 int 21h ; proc1: lea dx,odoa mov ah,09 int 21h mov tt[si],'$' ; for ending ; ; lea dx,tt ; mov ah,09 ; int 21h ; ; lea dx,odoa ; mov ah,09 ; int 21h ; ; mov ah,4ch ; int 21h ret getnum endp END