PDA

View Full Version : سوال: Help



tahmtan
شنبه 30 اردیبهشت 1391, 22:32 عصر
با سلام و عرض ادب خوشحالم که عضو جامع بر نامه نویس ها شدم
یک سوال در مورد بر نامه نویسی در محیط 8086 داشتم.
همون طور که همتون میدونید توی این محیط نمیشه به طور مستقیم عدد رو وارد کرد و باید اونو به رشته تبدیل کرد
چون من دارم تازه روی این نرم افزار کار می کنم چاپ رشته های تک رقمی توی این محیط و بلدم
اما چاپ رشته های دو رقمی مثل 13 یا 21 رو تا حدودی بلدم که باید از 48 در بیاریم و...
اما به طور کامل بلد نیستم و نیاز مبرمی به این عمل دارم چون می خوام سری فیبو ناچی رو خودم بنویسم اگه امکانش هست چگونگی انجام این مراحل رو به صورت فرمول و کد بهم بدید
لطفا کمکم کنید
با تشکر تهمتن

maktoom
یک شنبه 31 اردیبهشت 1391, 09:18 صبح
سلام
فرمول فیبوناچی رو می خواید؟ اگه آره که فرمولش اینه هر عضو این دنباله از مجموع دو عضو قبلی ایجاد می شن با این شرط که دو جمله اول 0 و 1 هستن.

MostafaMohammadi
یک شنبه 31 اردیبهشت 1391, 14:06 عصر
با سلام و عرض ادب خوشحالم که عضو جامع بر نامه نویس ها شدم
یک سوال در مورد بر نامه نویسی در محیط 8086 داشتم.
همون طور که همتون میدونید توی این محیط نمیشه به طور مستقیم عدد رو وارد کرد و باید اونو به رشته تبدیل کرد
چون من دارم تازه روی این نرم افزار کار می کنم چاپ رشته های تک رقمی توی این محیط و بلدم
اما چاپ رشته های دو رقمی مثل 13 یا 21 رو تا حدودی بلدم که باید از 48 در بیاریم و...
اما به طور کامل بلد نیستم و نیاز مبرمی به این عمل دارم چون می خوام سری فیبو ناچی رو خودم بنویسم اگه امکانش هست چگونگی انجام این مراحل رو به صورت فرمول و کد بهم بدید
لطفا کمکم کنید
با تشکر تهمتن
شما الگوریتم فیبوناچی تون رو چطور نوشتید؟ هر عدد توی یک خونه از حافظه است و کل اعداد سری فیبوناچی توی یک رشته است؟
اگه اینطوره، کافیه اولین خونه از رشته رو که می خونی، به صورت متوالی بر عدد 10 تقسیم کنی و هر بار باقیمانده تقسیم رو توی stack ذخیره کنی، این تقسیمات متوالی رو اونقدر ادامه بدی تا خارج قسمت صفر بشه، وقتی خارج قسمت صفر شد، شروع کن به بازخوانی باقیمانده هایی که توی stack ذخیره کرده بودی. هر بار با 48 جمع شون کن تا تبدیل به کد اسکی بشن و چاپ شون کن. وقتی عدد رو به صورت کامل چاپ کردی یه ویرگول و خط فاصله چاپ کن و برو سراغ خونه بعدی رشته و همینطور الی آخر.87260

سلام
فرمول فیبوناچی رو می خواید؟ اگه آره که فرمولش اینه هر عضو این دنباله از مجموع دو عضو قبلی ایجاد می شن با این شرط که دو جمله اول 0 و 1 هستن.
نه دوست عزیز فرمول فیبوناچی رو نمی خواد، نحوه چاپ کردن رشته عددی رو می خواد تا بتونه سری فیبوناچی رو چاپ کنه.

tahmtan
یک شنبه 31 اردیبهشت 1391, 22:47 عصر
سلام دوستان
من یه آرایه به این صورت تعریف کردم
fibo db 1,1,8 dup (?)
این دو تا عدد یک رو مستقیم با اضافه کردن عدد 48 به اون چاپ می کنم این چرخه رو تا آرایه ششم که جمع دو تا آرایه قبلش هست یعنی 5 و 8 که مجموعشون میشه 13
13 یه رشته دو بایتی با اسکی 3331 هست حالا من یه فرمول میخوام که این رشته رو توی همون حلقه محاسبه کنه و شامل خونه های بعدی آرایم که 21 و 34 و... میشه رو هم حساب کنه
با تشکر تهمتن

ssbostan
یک شنبه 31 اردیبهشت 1391, 23:17 عصر
سلام؛
اين كد رو به عنوان يك ماكرو يا پردازه قرار بديد و بعد هرجا كه قرار بود عددي چاپ بشه، عدد رو در ax ريخته و كد رو صدا بزنيد.





mov ax, 65535 ; adad dar ax.
div_loop:
mov dx, 0
mov bx, 10
div bx
push dx
inc si
cmp ax, 0
jz exit
jmp div_loop

exit:

mov cx, si
p:
pop dx
add dl, 30h
mov ah, 02h
int 21h
loop p




موفق باشيد.

tahmtan
دوشنبه 01 خرداد 1391, 00:55 صبح
با سلام
مرسی از محبتت همتون به ویژه دوست عزیزم ssbostan کدی که بهم دادی کلی کمک کرد
واقعا ممنونم
با تشکر از همه تهمتن