dseg segment msglines db 'enter number of lines:',10,13,'$' msgenter db 10,13,'$' y db 3,4 dup('$') msgerror db 'Error input you input 3 numers',10,13,'$' msgerror2 db 'Error input you input negative numbers',10,13,'$' dseg ends sseg segment stack dw 100H dup(?) sseg ends cseg segment assume ds:dseg, ss:sseg, cs:cseg clrscr proc push ax push cx push dx mov cx,25 newline: call showmsg loop newline pop dx pop cx pop ax ret clrscr endp showmsg proc push ax mov ah,9h int 21h pop ax ret showmsg endp gets proc push ax push dx mov ah,10 int 21h pop dx pop ax ret gets endp org 100H start: MOV AX,dseg MOV DS,AX mov dx,offset msgenter call clrscr start3: mov ah,0 mov dx,offset msglines call showmsg mov dx,offset y call gets mov al,y+2 cmp al,0 jl error jmp start2 error: mov dx,offset msgerror2 call showmsg jmp start3 start2: mov si,ax nextline: mov di,si showstars:mov dl,'*' mov ah,2h int 21h dec di jnz showstars mov dx,offset msgenter call showmsg dec si jnz nextline INT 3H cseg ends end start
|