ايران ويج

نسخه‌ی کامل: این فرمان ها چی اند؟
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
$hwstack=عدد
$swstack=عدد
$framesize=عدد
سلام به همگی کسی میدونه این فرمان ها برای چیه و کجاها به کار میره یه توضیحی برام بزاره من که توی نت چیزی پیدا نکردمSad[/php][/quote]
اینا فقط مقدار دهی هستند
یه سری متغیر تعیرف کرده و مقدار داده احتمالا توی خود برنامه نیاز داشته یا چیزی که کد ور باهاش ساخته به ضورت پیش فرض مقدار داده
این یکی از مثال های خود بسکام هستش که تو هلپش همیشه ابتدای برنامه هاش این هارو مینویسه
سلام.

تو help خود بسكام سرچشون كني تا حدودي توضيح داده ...
براي $hwstack

The Hardware stack is room in RAM that is needed by your program. When you use GOSUB label, the microprocessor pushes the return address on the hardware stack and will use 2 bytes for that. When you use RETURN, the HW stack is popped back and the program can continue at the proper address. When you nest GOSUB, CALL or functions, you will use more stack space. Most statements use HW stack because a machine language routine is called.

مقدار ريجستري هست كه به حافظه ي stack سخت افزاري اختصاص داده مي شه ... .
براي رفتن به وقفه ، رفتن به gosub و تابع هايي كه فراخواني مي كني ، آدرس هاشون در اين بخش از حافظه كه بهشون stack مي گن ذخيره مي شه ... و وقتي به دستورايي مثل return و ... مي رسه بر مي گرده به جايي كه بوده و حافظه رو خالي مي كنه ... و يه سري داستان ديگه كه احتمالا مي دوني ...

-----------------------------
براي $swstack

Sets the available space for the software stack.

While you can configure the SW Stack in Options, Compiler, Chip, it is good practice to put the value into your code. This way you do no need the cfg(configuration) file.
The $SWSTACK directive overrides the value from the IDE Options.

اين هم براي تعيين فضاي stack نرم افزاريه ...
---------------------------------
$framesize
هم كمي مجهوله !!
اما گفته كه مي توني فضاي اين رو تعيين كني ...

مقادير ديفالتشون همون 32 و 10 و 40 هست ، كه مي توني خودت اندازه ي فضا ها رو بنا به برنامه اي كه نوشتي تغيير بدي ...

اگر كسي كاملتر مي دونه ، ممنون مي شيم توضيح بده ...

موفق باشيد.
يا علي.

سلام
شارين جان بخوبي توضيحات دوستان گرامي را كامل كردند
مدتي پيش حجم كد هگز برنامه اي كه با بيسيك در مگا32 نوشته بودم از 27 كيلوبايت زيادتر شد و برنامه هنگ مي كرد طبق سفارش يك دوست فرمانهاي بالا را بعد از معرفي كريستال ، قرار دادم و مشكل كاملا حل شد

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

کد:
$hwstack = 300
$swstack = 200
$framesize = 100
منم دنبال همین فرمان ها بودم میشه یکم واضح تر بگین منم بفهمم
سلام دوست من
در مورد مقادير هنوز چيزي نميدونيم ولي در مورد ماهيتشان تو پست 4 شارين عزيز هلپ بسكامو ترجمه كردند و بيشتر از اين ديگه نميدونيم بنابر اين تا مشخص شدن اين مجهولات دستورات را در برنامه و پس از مشخص كردن كريستال بنويس و مقادير بيشتر از پيشفرضشان بده
پاينده باشي
البته اين نكته رو هم در نظر داشته باشيد ...
البته از قول خودم مي گم ...

اين كه همينطوري فضاي زيادي رو به stack ها اختصاص بديم كار درستي نيست ...
بسته به برنامه ، اگر از پرش هاي زيادي و يا پرش هاي تو در تو استفاده شده باشه ، خوب اختصاص فضاي بيشتر براي stack باعث عملكرد بهتر مي شه . ( فراخواني توابع و وقفه ها و ... كه احتياج به stack دارن ... )
اگر همينطوري فضاي زيادي رو اختصاص بديم ، فقط بيهوده فضاي ميكرو رو اشغال مي كنيم .

اما $framesize احتمال مي دم نقش مؤثري رو در عموم برنامه ها ايفا مي كنه ...
البته تجربه ي عملي و مقايسه اي تو اين موضوع ندارم !

با اين حال از چندتا از دوستان ديگه هم سعي مي كنم اطلاعات بيشتري كسب كنم ...
البته اگر گير بياد ...

موفق باشيد.
يا علي.