PDA

View Full Version : سوال: تعداد تکرار حلقه



imanss
چهارشنبه 01 دی 1389, 08:47 صبح
سلام . برنامه ای بنویسید که تعداد تکرار حلقه را از کاربر گرفته وستاره را به آن تعداد چاپ کند . متوجه منظور برنامه نمیشم میشه کسی راهنماییم کنه که برنامه چی میخواد برام توضیح بده

xman_1365_x
چهارشنبه 01 دی 1389, 09:23 صبح
شوخي:مشكل سوال اينه فارسي گفته شايد بايد به زبان ديگه مي گفت:لبخند:
مثلا شما يك حلقه for در برنامه داري كه به تعدادي كه مشخص مي كني ادامه پيدا ميكنه،حالا اين ميگه شما اون شماره رو در برنامه وارد شدي بگير خوب
با loop خيلي سادست شما بايد بگيري مقدار n رو در چي بريزي تا loop كار كنه؟ بعد در loop بنويس ستاره نمايش بده همين

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

chr db ?


.code
main proc far


mov ax,@data
mov ds,ax


l1: mov dl,'*'
mov ah,02h
int 21h

cmp chr,5
je exit

inc chr

loop l1

exit:mov ah,4ch
int 21h

main endp
end main

یعنی منظورت اینه ؟

xman_1365_x
چهارشنبه 01 دی 1389, 18:33 عصر
مطمئني منظور من اين بود؟:لبخند:
برنامتو خودت اجرا كن ببين چي ميشه :چشمک: همش از من نپرس وقتي خروجي برنامتو ديدي ميفهمي درست نوشتي يا اشتباه
فقط الان بهت ميگم اشتباه نوشتي(برو ببين دستور لوپ چطور كار ميكنه)
براي مقدار دادن به لوپ بايد اون رو به cx نسبت بدي
پس چي كار ميكني؟
ميري يك عدد ميگيري
بعد به باينري تبديل ميكني
بعد اونو ميريزي در cx
و بعد لوپ با وقفه چاپ كردن ستاره
چيز ديگه اي داخل لوپ ننويس!

imanss
چهارشنبه 01 دی 1389, 19:51 عصر
.model small
.stack 32h
.data
ch1 db ?
msg db '*','$'
.code

main proc far
mov ax,@data
mov ds,ax

mov bx,offset msg
mov cx,5

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


cmp cx,1
je fine



dec cx

loop l1




fine: mov ah,4ch
int 21h

main endp

end main
خب اینجوری نوشتم بهش گفتم 5 بار اجرا بشه ولی 3 ستاره چاپ میکنه

imanss
چهارشنبه 01 دی 1389, 19:54 عصر
البته برنامه قبلی با jmp نوشتم 5 بار اجرا شد ولی الان با loop نوشتم 3 بار اجرا شد

xman_1365_x
چهارشنبه 01 دی 1389, 22:58 عصر
در برنامه اول اين خط رو كي نو.شته پس ؟


cmp chr,5
je exit

دوست عزيز لطفا براي گذاشتن كدهات حتما از نوار ابزار روي شكل نامبر يا همون كد برو و اين كد هارو بين اون بزار اينطوري باشه ديگه جواب نميدم سرگيجه گرفتم اينطوري
بعدشم من بهت گفتم برو كار كرد لوپ رو بخون نرفتي
بهت گفتم داخل لوپ چيز ديگه ننويس باز اينا چيه؟


cmp cx,1
je fine

dec cx


برشون دار،خوب ديدي درست شد؟
ضمنا يك اشتباه هاي ديگه هم داري شايد بعد بگم
موفق باشي