اطلاعیه

Collapse
No announcement yet.

برنامه نویسی به زبان اسمبلی

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #61
    پاسخ : برنامه نویسی به زبان اسمبلی

    نوشته اصلی توسط FAM
    متاسفانه بزرگترین مشکل منم همینه که دارم با بیسکام کار میکنم اما چون باید از سال دیگه همه ی وقتمو بزرام سر کنکور به همین دلیل نمیتونم با کامپایلر های دیگه توی یکسال به توانایی هایی که الان توی بسکام دارم برسم پس مجبورن دارم باهاشش کارمیکنم.
    اینکه در طول یکسال نمی توانید به تسلط فعلی برسید نوعی کم لطفی در حق خودتان است و من فکر می کنم برای فردی با پشتکار و علاقه و استعداد شما شاید یک ماه هم کافی باشد.

    نوشته اصلی توسط FAM
    ببینید من برای هر پیکسل باید 2تا بیتو 1 و 0 کنم یه متغییر Word رو روی 2 پورت مورد نظر قرار بدم و 3تا بیتو 0 و 1 بدم میتونید زحمت برنامه ی اینو بکشین به طوری کپی برابر اصل باشه. یعنی اگه 7 دستور میشه در موقع پروگرم کردن هم همون 7 دستور باشه.
    در مورد برنامه مورد نظر شما تا وقتی که در محیط BASCOM نوشته می شود، گارانتی وجود ندارد که دقیقا به همان شکل اجرا شود و برای پیاده سازی این مسئله می توانم چند خط کد هم بنویسم. اما به نظر می رسد که به دلیل اشکالی که در اساس کار وجود دارد، این عمل راه به جایی نبرد.برای آنکه بتوانید از دستورات سریع sbi و cbi استفاده کنید باید ابتدا پورت مورد نظر را به یک virtual port نسبت دهید و در مرحله بعد در مورد این پورت مجازی می توانید دو دستور مذکور را بکار ببرید. در هر صورت اگر همچنان در این مورد مصر هستید، بیت های cs و rs و wr را مشخص کنید که به چه پورتی و چه پینی متصل است تا کد متناظر آن نوشته شود.

    نوشته اصلی توسط FAM
    راستی یه سوال دیگه AVR-Studio میکروی Atxmega384a1 رو ساپورت نمیکنه البته من برای پروگرم کردن لازم دارم. برنامه ی پروگرمری هست که این آی سی رو ساپورت کنه و با MK2 ارتباط داشته باشه؟
    آیا میشه توی خود AVR-Studio کاری کرد این میکرو رو هم ساپورت کنه؟
    در نسخه 4.16 نرم افزار AVRStudio که در اختیار من است، شماره ATXMEGA384A1 وجود ندارد. اما در سایت Atmel برای پروگرامر این شماره، همان AVRISPMKII ذکر شده است:

    http://www.atmel.com/dyn/products/pr...388#dataSheets

    احتمالا در نسخه های جدیدتر این نرم افزار این شماره هم قرار داده شده باشد. در سایت زیر هم در فهرست IC های مورد پشتیبانی، شماره 384A1 هم آورده شده است:

    http://szetat.en.hisupplier.com/prod...rogrammer.html

    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #62
      پاسخ : برنامه نویسی به زبان اسمبلی

      سلام من ورژن 4.18 دارم ولی ندیدم

      دیدگاه


        #63
        پاسخ : برنامه نویسی به زبان اسمبلی

        نوشته اصلی توسط شهریار رجب زاده
        سلام من ورژن 4.18 دارم ولی ندیدم
        با این حساب باید صبر کرد تا این شماره به فهرست مورد پشتیبانی AVRStudio اضافه شود.
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


          #64
          پاسخ : برنامه نویسی به زبان اسمبلی

          سلام.
          لطفا زحمتش رو بکشید
          Cs=Portk.0
          Rs=portk.1
          wr=portk.2
          الهم عجل لولیک الفرج

          فقط 313 نفر...

          دیدگاه


            #65
            پاسخ : برنامه نویسی به زبان اسمبلی

            نوشته اصلی توسط طراح
            با این حساب باید صبر کرد تا این شماره به فهرست مورد پشتیبانی AVRStudio اضافه شود.
            یه سوال پس با چی باید برای این میکرو برنامه نوشت؟
            در ضمن آقای طراح اگر میشه آموزش ها رو همراه با دستورات به صورت یک PDF درآورید

            دیدگاه


              #66
              پاسخ : برنامه نویسی به زبان اسمبلی

              نوشته اصلی توسط شهریار رجب زاده
              پس با چی باید برای این میکرو برنامه نوشت؟
              البته این میکروکنترلر تا جایی که اطلاع دارم فعلا در ایران وجود ندارد. اما راه اصلی رسیدن به پاسخ این سوال، پرسش از بخش پشتیبانی شرکت ATMEL است.
              اوژن: به معنای افکننده و شکست دهنده است
              دانایی، توانایی است-Knowledge is POWER
              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

              دیدگاه


                #67
                پاسخ : برنامه نویسی به زبان اسمبلی

                نوشته اصلی توسط FAM
                سلام.
                لطفا زحمتش رو بکشید
                Cs=Portk.0
                Rs=portk.1
                wr=portk.2
                برای آنکه بتوانید از برنامه قبلی خود استفاده کنید، نوع تعریف ها مانند نمونه برنامه ای است که در تاپیک ELT240320ATP نوشته شده است.ابتدا PORTK به Virtual PORT0 نسبت داده می شود.

                PORTCFG_VPCTRLA = $09


                سپس متغیر ها بر اساس این پورت مجازی تعریف می شوند.

                'wr pin declare
                Lcd_wr_port Alias VPORT0_OUT
                Lcd_wr_ddr Alias VPORT0_DIR
                Lcd_wr_pin Alias VPORT0_IN
                Lcd_wr_pin_num Alias 2
                ' rs pin declare
                Lcd_rs_port Alias VPORT0_OUT
                Lcd_rs_ddr Alias VPORT0_DIR
                Lcd_rs_pin Alias VPORT0_IN
                Lcd_rs_pin_num Alias 1
                ' cs pin declare
                Lcd_cs_port Alias VPORT0_OUT
                Lcd_cs_ddr Alias VPORT0_DIR
                Lcd_cs_pin Alias VPORT0_IN
                Lcd_cs_pin_num Alias 0

                بعد از این تعاریف مقدار دهی اولیه برای جهت پورت ها و خروجی آنها با همان ترتیب برنامه فعلی شما انجام می شود. حال در بخشی از برنامه اگر از دستورات CBI و SBI استفاده کنید، در کد معادل اسمبلی هم به همان صورت اعمال می شوند.

                cbi Lcd_cs_port,lcd_cs_pin_num
                sbi Lcd_rs_port,lcd_rs_pin_num
                Porth_out = High(dat)
                Portj_out = Dat
                cbi Lcd_wr_port,lcd_wr_pin_num
                sbi Lcd_wr_port,lcd_wr_pin_num
                sbi Lcd_cs_port,lcd_cs_pin_num


                ضمنا اگر روتین بالا در یک حلقه به تعداد زیاد تکرار می شود، توصیه به شما این است که آنرا در زیربرنامه(Subroutine) قرار ندهید و در همان محل خود اجرا کنید. زیرا رفت و برگشت به زیربرنامه در بهترین شرایط هم چندین سیکل زمان می برد و برای کار شما که زمان بسیار مهم است، بهتر است در صورت امکان از زیربرنامه استفاده نشود.
                اوژن: به معنای افکننده و شکست دهنده است
                دانایی، توانایی است-Knowledge is POWER
                برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                دیدگاه


                  #68
                  پاسخ : برنامه نویسی به زبان اسمبلی

                  با سلام و تشکر از اقای طراح اموزشهای شما بسیار دلچسبند لطفا اگه میشه بصورت pdf ارائه بدین

                  نابرده رنج گنج میسر نمی شود مزد آن گرفت جان برادر که کار کرد !

                  دیدگاه


                    #69
                    پاسخ : برنامه نویسی به زبان اسمبلی

                    نوشته اصلی توسط mac_mac_1
                    با سلام و تشکر از اقای طراح اموزشهای شما بسیار دلچسبند لطفا اگه میشه بصورت pdf ارائه بدین
                    ضمن تشکر از شما، هر مطلبی را که به نظر شما مفید است می توانید از طریق word و نرم افزارهای PDF Creator به فرمت PDF تبدیل کنید.
                    اوژن: به معنای افکننده و شکست دهنده است
                    دانایی، توانایی است-Knowledge is POWER
                    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                    دیدگاه


                      #70
                      پاسخ : برنامه نویسی به زبان اسمبلی

                      ( پیرو درخواست برخی دوستان برای ادامه مطالب این تاپیک )

                      دستور IJMP:
                      این دستور عملکردی را نظیر دستور switch در C یا Select-case در Basic ایجاد می کند. با استفاده از این دستور بسته به مقدار یک متغیر، اجرای برنامه به نقاط مختلف هدایت می شود. یکی از مزایای استفاده از این دستور، برابر بودن زمان پرش به هر یک از حالات مورد نظر است. برای فهم بهتر مسئله، فرض کنید در رجیستر R16، مقداری در محدوده 5-0 بتواند قرار داشته باشد که بر اساس مقدار آن، روتینی باید اجرا شود. روش اول برای اجرای روتین های مختلف از روی مقدار این رجیستر، روش مقایسه است:

                      tst r16
                      breq routine0
                      cpi r16,1
                      breq routine1
                      cpi r16,2
                      breq routine2
                      cpi r16,3
                      breq routine3
                      cpi r16,4
                      breq routine4
                      rjmp routine5


                      اگر روتین های مورد نظر در فاصله ای از محل دستورات breq قرار داشته باشند که خارج از ظرفیت پرش این دستور باشد، بصورت زیر هم می توان عمل کرد:

                      tst r16
                      brne label0
                      rjmp routine0
                      label0:
                      cpi r16,1
                      brne label1
                      rjmp routine1
                      label1:
                      cpi r16,2
                      brne label2
                      rjmp routine2
                      label2:
                      cpi r16,3
                      brne label3
                      rjmp routine3
                      label3:
                      cpi r16,4
                      brne label4
                      rjmp routine4
                      label4:
                      rjmp routine5


                      در هردوی این روش ها زمان دسترسی به روتین ها برابر نیست و هرجه عدد بزرگتر باشد، این زمان طولانی تر است. همچنین کد نوشته شده در این روش از نظر حجم اصلا بهینه نیست.اما در مورد دستور IJMP، رجیستر Z به آدرس محلی اشاره می کند که پرش باید به آنجا انجام شود. مطابق مثال زیر، به تمام روتین ها، با یک زمان برابر دسترسی حاصل می شود:

                      ldi zl,low(jump_table)
                      ldi zh,high(jump_table)
                      add zl,r16
                      clr r16
                      adc zh,r16
                      Ijmp
                      jump_table:
                      rjmp routine0
                      rjmp routine1
                      rjmp routine2
                      rjmp routine3
                      rjmp routine4
                      rjmp routine5



                      اوژن: به معنای افکننده و شکست دهنده است
                      دانایی، توانایی است-Knowledge is POWER
                      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                      دیدگاه


                        #71
                        پاسخ : برنامه نویسی به زبان اسمبلی

                        با سلام خدمت استاد عزیز و بزرگوار جناب مهندس طراح.
                        اینجانب امیر حسام الفتی از شما کمال تشکر و قدردانی را می نمایم شما در طی مدتی تقریبا کوتاه مطالب بسیار جامع و کاملی را به این انجمن و این سایت ارئه کردید که شاید بهترین اساتید در دانشگاه ها نیز این اطلاعات را نداشته باشند و یا رایگان منتشر ننمایند. اما متسفانه به دلیل مشارکت نکردن دوستان و قدر ندانستن این مطالب کم رنگ شد و تاکنون که میل و رغبتی در شما برای ارائه مطالب ارزندیتان به این وب سایت نمانده بنده از طرف دوستان و خود از شما عذر خواهی میکنم.
                        اما یه پیشنهاد:
                        شما یه روز از وقت خالی خود را (حدود 1 ساعت) اعلام کنید مثلا پنجشنبه ها ساعت 10-9 و در صورت تمایل مطلب هفته را ارائه کنید و من و (چندین تن از دوستانم) وشاید هم بعضی یچه های انجمن در این ساعت آن شده و سوالات خود را در این 1 ساعت ویا کمتر بپرسیم و تا هفته ی بعد دوستان چندین کار مختلف را که در آن ها از دستورات گفته شده توسط شده استفاده شده به تاپیک ارائه کنند و در این صورت هم مشارک ها خوب خواهد شد هم پس از یه مدت یک تاپیک بسیار غنی از مطالب و برنامه های اسمبلی داریم که شاید هم در صورت توافق جناب طراح مطالب به صورت یک مقاله ، کتاب یا CD دربیاوریم تا خیلی ها هم استفاده کنند ...
                        باز هم از شما تشکر و قدر دانی میکنم.
                        و من الله توفیق.
                        الهم عجل لولیک الفرج

                        فقط 313 نفر...

                        دیدگاه


                          #72
                          پاسخ : برنامه نویسی به زبان اسمبلی

                          نوشته اصلی توسط FAM
                          که شاید بهترین اساتید در دانشگاه ها نیز این اطلاعات را نداشته باشند و یا رایگان منتشر ننمایند.
                          ضمن تشکر از شما بنده مدت 10 سال در دانشگاه تدریس می کردم، اما از جمله به دلیل وجود همین روحیه بی انگیزگی در دانشجویان و دانشگاه، ادامه آن روند را نوعی وقت تلف کردن تشخیص دادم و ترجیح دادم برای دوستانی مانند شما که از نظر تلاش و انگیزه بسیار فراتر از یک دانشجوی عادی عمل می کنید، وقت بگذارم. اما متاسفانه در این فضا هم برخلاف تصور اولیه همان روال حاکم است و تعداد افراد آماده برای کارهای جدی و پرچالش بسیار کمتر از آن چیزی است که در ابتدا به نظر می رسد.
                          در مورد تعیین ساعت مشخص هم اگر افرادی علاقه مند به این مباحث باشند، قابل بررسی است. ولی تجربه فعلی که حکایت از واقعیت متفاوتی دارد.
                          اوژن: به معنای افکننده و شکست دهنده است
                          دانایی، توانایی است-Knowledge is POWER
                          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                          دیدگاه


                            #73
                            پاسخ : برنامه نویسی به زبان اسمبلی

                            خوب حالا هر کی مرده یه خودی نشون بده ...
                            الهم عجل لولیک الفرج

                            فقط 313 نفر...

                            دیدگاه


                              #74
                              پاسخ : برنامه نویسی به زبان اسمبلی

                              جناب آقای "طراح". جسارت کرده و در پاسخ به پستتون در ساعت 12:45:05 بایستی عرض کنم. نظر به بعضی مواردی که در زمینه برنامه نویسی روی میکرو PLC و سیستم های متفاوت صنعتی برخورد داشته ام به این نکته واقف شده ام که همانگونه اغلب همکاران شاغل در روی پروژه های مبتنی بر S5 و S7 عادت داشته و دارند اگر هر کسی موقع پیاده سازی یا راه اندازی یک سیستم با منابع ذاتا محدود در مورد هر منبعی اعم از میزان حافظه ... سرعت و یا حتی بار شبکه به مرز 80 درصد ظرفیت نهایی پا بگذارد از دو حال خارج نیست. یا اصلا در انتخاب سخت افزار یا روش پیاده سازی به خطا رفته و یا عامدا به منظور کم کردن هزینه ای یا چیز مشابهی روی آن محیط با سخت افزار و روش نوشتن نرم افزار مربوطه اصرار و ابرام دارد. در هر صورت هیچ کدام از این دو مورد دلیلی بر تایید استفاده از اسمبلی برای حداکثرها نیست. همانگونه که وجود همچین مواردی تاییدی دال بر عدم استفاده از اسمبلی نیست. هر چیزی به جای خود.

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

                              ولی بهر حال خسته نباشید. امیدوارم همچنان قلمتان پر زور باشد و تاپیکتان پر مطلب.

                              ضمنا هنگامی که جنابعالی پروژه خود را بر اساس زبان اسمبلی بطور خالص بنا میکنید بر خلاف آموزه های مهندسی نرم افزار عمدتا امکان debugging و maintenance پروژه را دچار مشکل میکنید. اگر چنین محدودیتی دارید چرا از میکروی سریعتر یا حتی سیستم ترکیبی (مثلا با FPGA) استفاده نمیکنید؟

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

                              دیدگاه


                                #75
                                پاسخ : برنامه نویسی به زبان اسمبلی

                                پیش فرضی که در مورد استفاده از منابع یک سیستم تا حد هشتاد درصد مطرح نمودید، جای مناقشه جدی دارد و اگر روشی بتواند با بکارگیری حداکثر منابع یک پردازنده به جواب مطلوب برسد نسبت به رقبای ناتوان از انجام هدف مذکور، قطعا ارجحیت خواهد داشت. تصور کنید که برای یک سخت افزار مشخص، یک روش برنامه نویسی نتواند پاسخگوی نیازهای مورد نظر باشد و روش دیگری بتواند آن نیازها را برآورده کند. در این شرایط دلیلی ندارد که به خاطر ضعف یک ابزار نرم افزاری، سخت افزار قوی تری به سیستم تحمیل شود. ارتقاء سخت افزار، به خصوص در تولید با تعداد بالا تنها در صورتی توجیه پذیر است که با هیچ روش نرم افزاری نتوان از آن نتیجه گرفت و تحمیل هزینه سخت افزاری به واسطه ضعف ابزار نرم افزاری در کمتر موردی قابل توجیه است. معنای این جملات این است که آنچه که اصالت دارد، جواب گرفتن از صورت مسئله است و استفاده از یک ابزار خاص، به خودی خود ارزشی محسوب نمی شود. در مورد Debugging و Maintenance هم اگر برنامه نویسی اسمبلی با شیوه اصولی انجام شود، به راحتی قابل انجام خواهد بود و مشکل خاصی در این مورد وجود ندارد.
                                به عنوان یک مصداق عملی فرض کنید 1000 دستگاه صنعتی قرار است با یک میکروکنترلر موجود در بازار تولید شود و عملکرد هر دستگاه از نظر نرم افزاری و سخت افزاری به گونه ای است که فقط با برنامه نویسی اسمبلی می توان از آن جواب گرفت و BASCOM و codevision و IAR و GCC و غیره در انجام عملکرد مورد نظر ناتوان هستند. همچنین فرض کنید به دلیل بحث موجود بودن میکروکنترلر مورد نظر و معذورات تولید و قیمت تمام شده، فقط باید از همین خانواده استفاده شود و بقیه راه حل ها مردود است. این مواردی که ذکر شد، هیچکدام فرض نیست و موردی است که در عمل اتفاق افتاده و علیرغم چند ده نسخه از اضافه شدن امکانات به نرم افزار و به دلیل شیوه اصولی و صحیح برنامه نویسی ، به هیچ مشکلی از نظر Debugging و Maintenance هم برخورد نکرده است.
                                البته منظور از این بحث ها به هیچوجه این مطلب نیست که باید تمام برنامه ها را با اسمبلی نوشت و انجام این نوع برنامه نویسی در بسیاری مواقع نوعی اتلاف انرژی و زمان محسوب می شود. بلکه منظور این است که در جایی که لازم است و ایجاب می کند، نباید ناتوانی در این نوع برنامه نویسی به عنوان نقطه بن بستی برای برنامه نویس عمل کند و یک شرط لازم برای بهترین شیوه برنامه نویسی آن است که در هر کاربردی به همان شیوه ای که لازم است برنامه بنویسیم و اگر لازم باشد، دستور push و pop مانعی برای به نتیجه رساندن هدف مورد نظر نباشد.
                                تسلط به زبان اسمبلی گاهی در برنامه نویسی با زبان های سطح بالا هم می تواند بسیار مفید واقع شود. چنانکه اخیرا به دلیل نیاز شدید یکی از دوستان و عدم وجود کامپایلری که منظور او را برآورده کند، سورس یکی از کتابخانه های مهم BASCOM را که ترکیبی از BASIC و اسمبلی است تغییر دادم و علاوه بر کاملتر کردن آن،کتابخانه را از AVR برای XMEGA دوباره نویسی کردم. در حالی که ایشان بصورت طبیعی باید مدت های زیادی منتظر نسخه n+1ام این نرم افزار می ماند و اگر توانمندترین نرم افزار نویس این زبان هم در سطح دنیا بود، کمکی به حال او نمی کرد.
                                خلاصه اینکه از بین دو برنامه نویس که یکی فقط برنامه نویسی با زبانی مانند C را در حد بسیار اصولی و حرفه ای می داند و دومی که علاوه بر این توانایی به برنامه نویسی اسمبلی هم در حد عالی مسلط است، نفر دوم است که حرف اول را در انجام کاربردهای مورد نظر می زند و در هرکجا که لازم باشد از توانایی خود در زبان سطح بالا و در جای لازم هم از قدرت برنامه نویسی اسمبلی استفاده می کند. سپردن انجام جزئیات عملیات به کامپایلر همیشه هم بهترین راه حل نیست و برنامه نویس باید قادر باشد در صورت لزوم بجای کامپایلر وارد عمل شود و ظرفیت های سیستم را با دخالت مستقیم خود در جزئیات، محقق کند.
                                اوژن: به معنای افکننده و شکست دهنده است
                                دانایی، توانایی است-Knowledge is POWER
                                برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                                وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                                قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                                اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                                ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                                دیدگاه

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