-
2016/05/09, 04:08 #1
چاپ ستاره به صورت مثلث به زبان اسمبلی
عرض سلام میخواهم شکل ستاره ها را که در زیر نشون دادم را در زبان اسمبلی در محیط emu8086 بنویسم ، اگر میشود دستورش را بفرمایید
************************* -
2016/05/09, 04:36 #2
برنامه زیر چاپ ستاره به شکل خاص با زبان اسمبلی در محیط emu8086 است که هم سورس کد و هم تصویر خروجی در زیر آمده است.
کد:.model small .stack 64 .data n db 1 str db "*$" enter db 13,10,'$' i db 1 j db 1 f db 0 .code main proc far ;init data segment mov ax,@data mov ds,ax mov i,1 for1: mov j,1 for2: ;print * mov ah,09h lea dx,str int 21h inc j mov cl,n cmp j,cl jle for2 cmp n,7 jne skip3 mov f,1 skip3: cmp f,0 jne skip1 inc n inc n jmp end1 skip1: dec n dec n end1: ;print new line mov ah,09h lea dx,enter int 21h inc i cmp i,7 jle for1 ;getch mov ah,01h int 21h ;exit mov ax,4c00h int 21h main endp end main
-
2016/05/09, 04:44 #3
برنامه اجرا میشه ولی شکل اصلی رسم نمیشه لطفا این دستورات را در 8086 اجرا کنید.
ویرایش توسط محمد118 : 2016/05/09 در ساعت 04:47
-
2016/05/09, 04:50 #4
برنامه بالای که براتون نوشتم در محیط emu8086 نوشته شده و خروجی هم دقیقا اون چیزی که شما خواستید است اگه نمی تونید ستاره رو نشون بدید به صورت عکس اینجا بدید ببینم.
-
2016/05/09, 04:58 #5
برنامه زیر ستاره ها رو به صورت مثلث با زبان اسمبلی در محیط emu8086 نمایش میده.
کد:.model small .stack 64 .data p1 db 0 .code main proc far ;init data segment mov ax,@data mov ds,ax mov ah,02h mov dh,1 mov dl,4 int 10h mov dl,'*' mov ah,02h int 21h mov cx,3 mov p1,3 l1: mov ah,02h mov dh,2 mov dl,p1 int 10h mov dl,'*' mov ah,02h int 21h inc p1 loop l1 mov cx,5 mov p1,2 l2: mov ah,02h mov dh,3 mov dl,p1 int 10h mov dl,'*' mov ah,02h int 21h inc p1 loop l2 mov cx,7 mov p1,1 l3: mov ah,02h mov dh,4 mov dl,p1 int 10h mov dl,'*' mov ah,02h int 21h inc p1 loop l3 mov cx,5 mov p1,2 l4: mov ah,02h mov dh,5 mov dl,p1 int 10h mov dl,'*' mov ah,02h int 21h inc p1 loop l4 mov cx,3 mov p1,3 l5: mov ah,02h mov dh,6 mov dl,p1 int 10h mov dl,'*' mov ah,02h int 21h inc p1 loop l5 mov ah,02h mov dh,7 mov dl,4 int 10h mov dl,'*' mov ah,02h int 21h ;getch mov ah,01h int 21h ;exit mov ax,4c00h int 21h main endp end main
-
2016/05/09, 05:12 #6
این دستورات رو که خودم خدمتتون ارسال کردم
باید با استفاده از دو حلقه for تو در تو نوشته بشود
با استفاده از دستورات پرش
ممنون از لطفتون