سلام ببخشید دیر شد چند وقتی اینترنت نداشتم و کمی درگیر کارای شخصیم بودم اما برنامه ای که قرار شد با هم بنویسیم تو این مدته من یک کارایی کردم که ادامه رو با هم میریم من طبق کاری که میخواستیم انجام بدیم اومدم 4 حالت برای برنامه درست کردم که رسم دایره رسم خط رسم مربع و رسم مستطیل رو انجام بده بازدن کلید 1 دایره و 2 مربع و .... در زیر تا اینجای برنامه که چاپ 4 رشته و گرفتن یک عدد برای فراخوانی رسم هست رو انجام دادم ببینید این قسمت رو تا با هم ادامه بدیم با سپاس .model small .stack 128h .data stringc db "1-circle",10,13,'$' stringf db "2-foursquare",10,13,'$' stringr db "3-rectangular",10,13,'$' stringl db "4-line",10,13,'$' stringe db "PLZ select 1 or 2 or 3 or 4",10,13,'$' stringa db "R Again - Q Exit",10,13,'$' .code main proc far mov ax,@data mov ds,ax reset: call msg mov AH,7H int 21h cmp Al,49 JE circled cmp Al,50 JE foursqulard cmp Al,51 JE rectangulard cmp Al,52 JE lined mov ah,9h lea dx,stringe int 21h jmp reset circled: call circle jmp chmod foursqulard: call foursqular jmp chmod rectangulard: call rectangular jmp chmod lined: call line chmod: call modt mov ah,9h lea dx,stringa int 21h mov AH,7H int 21h cmp al,'r' JE reset mov ax,4c00h int 21h main endp msg proc mov ah,9h lea dx,stringc int 21h mov ah,9h lea dx,stringf int 21h mov ah,9h lea dx,stringr int 21h mov ah,9h lea dx,stringl int 21h ret msg endp circle proc call modg jmp reset circle endp foursqular proc call modg jmp reset foursqular endp rectangular proc call modg jmp reset rectangular endp line proc call xa mov AH,7H int 21h mov x1,al call xb mov AH,7H int 21h add x1,al call chap call modg jmp reset line endp xa proc mov ah,9h lea dx,stringx1 int 21h ret xa endp xb proc mov ah,9h lea dx,stringx2 int 21h ret xb endp ya proc mov ah,9h lea dx,stringy1 int 21h ret ya endp yb proc mov ah,9h lea dx,stringy2 int 21h ret yb endp modg proc mov ah,00h mov al,04h int 10h ret modg endp modt proc mov ah,00h mov al,03h int 10h ret modt endp chap proc mov dl,x1 mov ah,02h int 21h ret chap endp end main