اطلاعیه

Collapse
No announcement yet.

حجم برنامه زیاد نیست؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    حجم برنامه زیاد نیست؟

    سلام دوستان
    من قبلا که AVR کار میکردم با اسمبلی برنامه مینوشتم، چند روز هست که دارم BASIC رو امتحان می کنم اما یک چیز توجهم رو جلب کرده، بعد از اینکه کامپایل می کنم حجم بزنامه شدیدا نسبت به برنامه ای که با اسمبلی می نوشتم زیاد میشه، با اینکه همون کار رو انجام میده. مثلا برنامه ساده زیر 1kb شده اما با اسمبلی 500 بایت هم نمیشه:
    $regfile = "m16def.dat"
    $crystal = 1000000
    Cls
    Lcd "Navid"
    End
    خواستم ببینم مشکل از برنامه من هست یا کلا همینطوره؟
    C چطور؟
    و اینکه به نظر شما در کنار اسمبلی C رو کار کنم بهتره یا BASIC ؟ چرا؟
    تشکر
    از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
    هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
    اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
    اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
    شاد و موفق باشید

    #2
    پاسخ : حجم برنامه زیاد نیست؟

    خوب مشخصه که حجم برنامه بیشتر میشه.
    اسمبلی یعنی برنامه نویسی خشک.
    هر چیزی که 100% لازمه تو اسمبلی به کار برده میشه.
    اما زبانهای دیگه بخاطر انعتاف پذیری بیشتر به ناچار کدهای گاها غیر ضروری هم تولید میکنند که باعث میشه حجم برنامه بیشتر بشه.
    اما فکر کنم کدهایی که با کد ویژن تولید میشه کم حجم تر و سریع تر باشه.
    در ضمن بلد بودن زبانهای مختلف هیچوقت باعث ضررت نمیشه.
    هر کدوم مزایایی دارند که اگه بلد باشی میتونی به موقعش ارشون استفاده کنی.
    الهم عجل لولیک الفرج

    دیدگاه


      #3
      پاسخ : حجم برنامه زیاد نیست؟

      نوشته اصلی توسط Iran-PC
      در ضمن بلد بودن زبانهای مختلف هیچوقت باعث ضررت نمیشه.
      هر کدوم مزایایی دارند که اگه بلد باشی میتونی به موقعش ارشون استفاده کنی.
      دقیقا به همین خاطر هست که من دارم سایر زبانها رو هم امتحان میکنم، مثلا بیسیک برای مواقعی که وقت کم هست و کار چندان پیچیده نیست مناسب هست مثلا برای ساخت ربات های نسبتا ساده مناسب هست مثل Basicstamp ها. اما من اندازه ASM باهاش حال نکردم زیاد خلاقیت نداره یه جورایی احساس میکنم توی برنامه نویسی دستم رو بسته، به خصوص وقتی که میبینی حجم برنامه داره همینطور زیاد میشه و به هیچ شکلی نمیشه برنامه رو کوچیکتر کنی. با C هنوز کار نکردم ولی فکر میکنم چیز خیلی مفیدی باشه. کتابش رو از اینترنت گرفتم منتظرم برسه و شروع کنم البته توی سربازی. :icon_razz:
      بابت توضیحات تشکر
      از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
      هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
      اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
      اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
      شاد و موفق باشید

      دیدگاه


        #4
        پاسخ : حجم برنامه زیاد نیست؟

        وقتی می نویسین LCD،بیسکام کل کتابخونه LCD رو اضافه کنه،که شامل حتی نوشتن اعداد اعشاری و... هست برا همین نصبت به اسمبلی شما که فقط روتین نوشتن کاراکتر رو داره ... اگه می خواین تست کنین،یک برنامه بنویسین که هر عدد اعشاری که دادیم رو فقط به تعداد ارقام اعشار پیش بره و بنویسه،چند حرف و کاراکترو ... رو هم نشون بده، این 2 تا برنامه رو با هم مقایسه کنین ...

        البته این به درجات اپتیمایز بستگی داره که توو بعضی کامپایلر ها هست،بعضی ها مثل بیسکام نیست. وگر نه صرفا بیسیک یا C بودن حجم رو که کم و زیاد نمی کنه ...

        توو کامپایلر های پیشرفته،درجه بندی سرعت تا حجم کد وجود داره که ...


        بیسیک برای کارهای منطقی ساده مثل یک رباط که فقط از سنسور می خونه،موتور رو صفر و یک می کنه خوبه ...
        Cآ‌برای کی برناکه شی گرای درست و حسابی که چند تا زیر برنامه و... داره مناسب تره ...
        همش لازمه ...
        با اومدن اینا یک عمر اسمبلی ننوشتم ...

        اما حرف آخرم،تا لم و قلقش رو بلد نباشی،هیچکدوم به درد نمی خوره :smile:

        دیدگاه


          #5
          پاسخ : حجم برنامه زیاد نیست؟

          هدف من مقایسه این زبانها نیست چون هر کدوم کاربرد خاص و نقاط قوت و ضعف خودشون رو دارند. در واقع همونطور که شما گفتی مشکل من با کامپایلر هست نه زبان.
          من چون تجربه کاری زیادی با Bascom ندارم نمیدونم چطور میشه به کامپایلر بفهمونیم چی میخوایم که حجم بیخودی بالا نره، مثلا اینجا من همه این کتابخونه هارو نمیخوام ولی کامپایلر گیر میده میگه باید بخوای، راهی هست که گولش بزنیم؟
          میشه توی برنامه Bascom فایل اسمبلی رو هم ازش بگیریم؟ تو Codevision فکر کنم میشه نه؟ اگر بشه تا حدود زیادی با کامپایلر میشه آشنا شد. از فایل Hex یا bin چطور؟ میشه فایل ASM بگیریم؟ اگر بتونم فایل ASM رو بعد از کامپایل بیسیک بگیرم خیلی خوبه.
          از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
          هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
          اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
          اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
          شاد و موفق باشید

          دیدگاه


            #6
            پاسخ : حجم برنامه زیاد نیست؟

            اینها خیلی سادن!!آ‌چون میکرو کار خواصی نمی تونه انجام بده ... امید وارم برداشت بد نشه ها!!آ‌منظورم مقایسه با مثلا VS2005 بود!!! پس محیطهای کامپایلر ها رو راهت می شه آشنا شد،همه یکی هستن ...

            یادم میاد هیچ کدوم از این کامپایلر ها،سورس همه چیز رو نگه نمی دارن(شاید یک اپن سورس مثل WINAVR که با هسته GCC نوشته شده...) اما اصولا اگه قرار باشه سورس همه چیز رو بدن که خوب توو 3 صوت کل برنامه کپی میشه!!!آ‌

            معمولا می تونیم بگین فایل اسمبلی بدن،اما یک سری دستورات به صورت فایل obj هستن که بعدا لینک میشن به برنامه ...

            من توو بیسکام برای اپتیمایز چیزی ندیدم، اما اکثرا توو کامپایلر هاهست یه چیزایی ،ولی نه به این شکل که بگیم فلان کتابخونه اضافه نشه!!آ‌...

            راه گول زدن اینه که با دستورات ASM توو خود برنامه اسمبلی بنویسی یا کلا روتین مثلا LCDآ‌رو از نو بنویسیم،اونهاییش که می خوایم!!

            اگه گفتم هیچکدوم به درد نمی خوره برا اینه که ما مثلا به بیسیک اعتماد می کنیم!!آ‌برنامه رو می نویسیم،اما اینها در حقیقت خط به خط با اسمبلی جایگزین می کنن نه به صورت هوشمند منظور ما رو از خطهای بالایی بفهمن !!! ،در نهایت ممکنه تبدیل شده اون،به فاجعه ای تبدیل شه که ... :mrgreen: خیلی نکات ریز داره،اما برای کسی که از اسمبلی میاد،چون سخت افزار رو شناخته موضوع حله ...

            دقیقا از HEX میشه فایل اسمبلی گرفت!! حتی لازم نیست اینترنت رو بگردیم!!آ‌چون قراره اعداد رو با دستور جایگزین کنیم!!!آ‌اما توو اینترنت آمادش هست ...

            دیدگاه


              #7
              پاسخ : حجم برنامه زیاد نیست؟

              ممنون خپل جان میرم دنبال convertor کمک زیادی می کنه.
              از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
              هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
              اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
              اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
              شاد و موفق باشید

              دیدگاه

              لطفا صبر کنید...
              X