PDA

View Full Version : سوال: شکل لوزی ستاره



imanss
چهارشنبه 01 دی 1389, 00:59 صبح
.model small
.stack 32h
.data

msg db '*****','$'
msg1 db '',13,10,'$'

.code
main proc far


mov ax,@data
mov ds,ax

mov bx,offset msg
mov cx,1

p1: mov dl,[bx]
mov ah,02h
int 21h
cmp cx,1
je p2



p2: mov ah,09h
lea dx,msg1
int 21h

mov cx,2

cmp cx,1
je p3


mov dl,[bx]
mov ah,02h
int 21h


inc bx
dec cx

jmp p2

p3: mov ah,09h
lea dx,msg1
int 21h

mov cx,3

cmp cx,1
je p4

mov dl,[bx]
mov ah,02h
int 21h

inc bx
dec cx

jmp p3

p4: mov ah,09h
lea dx,msg1
int 21h


mov cx,4

cmp cx,1
je p5


mov dl,[bx]
mov ah,02h
int 21h

inc bx
dec cx

jmp p4

p5: mov ah,09h
lea dx,msg1
int 21h



mov cx,5

cmp cx,1
je p6


mov dl,[bx]
mov ah,02h
int 21h


inc bx
dec cx

jmp p5

p6: mov ah,09h
lea dx,msg1
int 21h


mov cx,4

cmp cx,1
je p7


mov dl,[bx]
mov ah,02h
int 21h

inc bx
dec cx

jmp p6


p7: mov ah,09h
lea dx,msg1
int 21h


mov cx,3


cmp cx,1
je p8


mov dl,[bx]
mov ah,02h
int 21h


inc bx
dec cx

jmp p7

p8: mov ah,09h
lea dx,msg1
int 21h


mov cx,2

cmp cx,1
je p9


mov dl,[bx]
mov ah,02h
int 21h


inc bx
dec cx

jmp p8

p9: mov ah,09h
lea dx,msg1
int 21h

mov dl,[bx]
mov ah,02h
int 21h


mov cx,1

cmp cx,1
je f1


f1: mov ah,4ch
int 21h

main endp

end main



میخوام با این برنامه یک سکل لوزی با ستاره درست کنم نمی دونم مشکلس چیه ؟
البته به سبک خودم نوشتم با حلقه های زیاد:خجالت:

*
**
***
****
*****
****
***
**
*

xman_1365_x
چهارشنبه 01 دی 1389, 01:37 صبح
دوست زيركم چند تا جا سوالتو ميپرسي باور كن من اول صفحه اصلي اسمبلي رو ميبينم!
شما هم توي پست ديگه اينو مطرح كردي ، هم تاپيك جديد،هم خصوصي :لبخند: ميگن كار از محكم كاري عيب نمي كنه مگه نه:چشمک:

imanss
چهارشنبه 01 دی 1389, 14:02 عصر
.model small
.stack 32h
.data

msg db '*****','$'
msg1 db '',13,10,'$'

.code
main proc far


mov ax,@data
mov ds,ax

mov bx,offset msg
mov cx,5

p1: mov dl,[bx]
mov ah,02h
int 21h

sub cx,4
add bx,1
cmp cx,1
je p2



p2: mov ah,09h
lea dx,msg1
int 21h




cmp cx,2
je p3


mov dl,[bx]
mov ah,02h
int 21h


add bx,2
sub cx,3

jmp p2

p3: mov ah,09h
lea dx,msg1
int 21h



cmp cx,3
je p4

mov dl,[bx]
mov ah,02h
int 21h

add bx,3
sub cx,2

jmp p3

p4: mov ah,09h
lea dx,msg1
int 21h




cmp cx,4
je p5


mov dl,[bx]
mov ah,02h
int 21h

add bx,4
dec cx

jmp p4

p5: mov ah,09h
lea dx,msg1
int 21h



add bx,5
cmp cx,5
je p6


mov dl,[bx]
mov ah,02h
int 21h




jmp p5

p6: mov ah,09h
lea dx,msg1
int 21h



cmp cx,4
je p7


mov dl,[bx]
mov ah,02h
int 21h

add bx,4
sub cx,1

jmp p6


p7: mov ah,09h
lea dx,msg1
int 21h



cmp cx,3
je p8


mov dl,[bx]
mov ah,02h
int 21h


add bx,3
sub cx,1

jmp p7

p8: mov ah,09h
lea dx,msg1
int 21h


cmp cx,2
je p9


mov dl,[bx]
mov ah,02h
int 21h


add bx,2
sub cx,3
jmp p8

p9: mov ah,09h
lea dx,msg1
int 21h

mov dl,[bx]
mov ah,02h
int 21h

add bx,1
sub cx,4
cmp cx,1
je f1








f1: mov ah,4ch
int 21h

main endp

end main



برتامه ستاره لوزی رو اینجوری نوشتم بازم کار نمیکنه
مشکلش چیه به نظرت ؟

xman_1365_x
پنج شنبه 02 دی 1389, 03:18 صبح
مشكلش زياده ، چند خط اولشو ديدم در استفاده از متغير و وقفه مشكل داري باقيشو نديدم
اما مهمترينش الگوريتمشو اول متوجه شو بعد شروع كن به كد نويسي يا اگر كد مي نويسي يكم اجرا كن ديباگ كن ببين چي خروجي ميگيري يكم فكر كن روش!
براي چاپ لوزي با ستاره اولا بايد 2k+1 باشه تا درست نمايش داده شه
كلا راه حل زياده اما اينو بيشتر راهنمايي نمي كنم ،ميزارم خودت به نكته هاش برسي چون اين تازه يك برنامه قشنگه
و نكته داره كه چند تاشم گفتم
موفق باشي


*
***
*****
*******
*****
***
*

imanss
پنج شنبه 02 دی 1389, 09:52 صبح
آره انجام دادم چیزی تو loop ننوشتم فهمیدم فقط باید به cx مقدار بدی loop خودش انجام میده


meghsi pesar