اطلاعیه

Collapse
No announcement yet.

معادل دستور های اسمبلی در C

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

    معادل دستور های اسمبلی در C

    چطور میشه برای میکرو با سی برنامه نوشت مثلا دستور mov p1,#22h رو چطور در سی بیان میکنیم.
    ww.microworld.blogfa.com

    #2
    معادل دستور های اسمبلی در C

    سلام . خوبی دوست عزیز ؟
    توی قسمت آموزش نرم افزار های آنالیز و شبیه ساز یه نرم افزار هست به نام franklin شما آموزش اون رو دانلود کنید توی اون کامل توضیح داده .
    در C معادل این دستوری که شما نوشتید اینطوری میشه :
    P1=0x22 یه ; هم آخرش . این PHP چون کاملا فارسی نیست سیمیکالون رو آخرش نمیذاره برای همین جدا نوشتمش . دقت کنید که P1 حرف P حروف بزرگ هست .
    موفق باشید .
    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
    هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
    چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

    دیدگاه


      #3
      سوال

      ممنون از پاسختون

      حالا به عنوان مثال برای ایجاد یک تاخیر 100msچیکار میکنیم؟
      ww.microworld.blogfa.com

      دیدگاه


        #4
        معادل دستور های اسمبلی در C

        دوست عزیز سلام .
        این تاخیر رو به صورت دقیق میتونید با تایمر درست کنید . ولی اینکه چطوری میشه با حلقه مثلا FOR این تاخیر رو ایجاد کرد . میگردم جوابش رو بهتون میدم .
        موفق باشید .
        شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
        هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
        چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

        دیدگاه


          #5
          سوال

          ممنون از پاسختون

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

          متشکرم
          ww.microworld.blogfa.com

          دیدگاه


            #6
            معادل دستور های اسمبلی در C

            سلام خوبی دوست عزیز ؟
            فکر کنم جمله بندیم دفعه قبل بد بود منظورم رو خوب نرسوندم . تاخیر درست کردم با FOR کار سختی نیست مشکل اینکه زمان دقیقش رو بدست بیاریم . اگه بشه مشخص کرد که حلقه for چند سیکل کاری زمان میگیریه میشه دقیقا مشخص کرد که تاخیر ایجاد شده چقدر هست .
            مثلا :
            for(i=0;i<100;i++)ok
            for(j=0;j<100;j++);ok
            {}
            البته کلمه ok رو برای این گذاشتم که درست نشون داده بشه . این برنامه یه تاخیر 100*100 هست ولی اینکه مقدار این تاخیر چقدر هست من یه برنامه نوشتم که فقط توی حلقه forآ‌ بود . کامپایلر این حلقه for رو تبدیل به حلقه djnz کرد . و شما هم میدونید که DJNZ تاخیرش 4 سیکل هست .
            ولی سوال اینجاست اگه برنامه پیچیده باشه بازم برای حلقه FOR از DJNZ با این روش استفاده میکنه ، یا اینکه روش دیگه ای داره .
            به نظر من اگه برنامه شما کوچک هست با فرض اینکه حلقه FOR در واقع 4 سیکل کاری زمان میبره تاخیرتون رو ایجاد کنید .
            موفق باشید .
            شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
            هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
            چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

            دیدگاه


              #7
              سوال

              ممنون از پاسختون

              بحث داره واقعا جالب میشه
              شما چند وقط پیش لطف کردین یک برنامه صفحه کلید به سی برا فرستادین
              تو صفحه کلید هم همونطور که بهتر میدونین تاخیر با مقدار مشخص مثلا20msنیازه و اصلا
              تو برنامه هایی که برای میکرو نوشته میشه تاخیر لازمه
              فکر میکنم چیزی که شما گفتین در جاهایی که فقط یک تاخیر که مقدارش مهم نیست منطقی باشه ولی چطور نمیشه یک تاخیر دقیق ایجاد کرد.البته من اینو برای کار خاصی فعلا نمی خوا فقط برام سوال بود.
              ممنون از پاسختون
              ww.microworld.blogfa.com

              دیدگاه


                #8
                معادل دستور های اسمبلی در C

                دوست عزیز سلام .
                من یه برنامه 700 خطی به زبان C داشتم که چند تا تاخیر توش بود . همونطور که حدس میزدم همه تاخیر ها رو با DJNZ درست نمیکنه مثلا این یکی از کد هایی هست که خودش کامپایلر برای یه تاخیر ساخته :

                MOV R3,#000H
                ?FOR2:
                MOV R0,#032H
                ?NXT41:
                DJNZ R0,?NXT41
                INC R3
                CJNE R3,#032H,?FOR2
                RET
                البته یه بهم ریخته ولی مهمش اینکه که به جای 2 تا DJNZآ‌ از یک DJNZ و یک CJNE و INC استفاده کرده . بنابراین فکر نکنم بشه با دقت کامل مشخص کرد که چه تاخیری ایجاد میکنه مگه اینکه خودتون یه بار فایل ASM ایجاد شده رو بخونید ببینید که به چه ترتیب تاخیر شما رو درست کرده بعد با توجه به اون عدد ها رو تغییر بدید .
                برای تاخیر کاملا دقیق هم که به نظرم من اگه با تایمر کاری ندارید از تایمر استفاد کنید .
                موفق باشید .
                شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                دیدگاه


                  #9
                  سوال

                  ممنون از پاسختون

                  یک سوال
                  مگه تو محیط سی میشه از دستورات اسمبلی استفاده کرد؟
                  ww.microworld.blogfa.com

                  دیدگاه


                    #10
                    معادل دستور های اسمبلی در C

                    سلام . خوبی دوست عزیز ؟
                    در سی که برای کامپیوتر مینویسید میشه این کار رو کرد . ولی در سی میکرو من ندیدم . چون مدیریت حافظه در اختیار کامپایلر هست فکر نکنم همچین اجازه ای بده .
                    این کد بالایی هم که شما میبینید خود کامپایلر درست کرده و معادل حلقه های for من رو دستورات تبدیل شده اسمبلیش رو گذاشته اون حلقه های for غیر فعال و به صورت توضیحات هستن ولی خوب چون اینجا بهم ریخته هست شما فکر کردید که ازشون استفاده شده .
                    موفق باشید .
                    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                    هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                    چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                    دیدگاه


                      #11
                      معادل دستور های اسمبلی در C

                      نوشته اصلی توسط محمد نحوی
                      سلام خوبی دوست عزیز ؟
                      فکر کنم جمله بندیم دفعه قبل بد بود منظورم رو خوب نرسوندم . تاخیر درست کردم با FOR کار سختی نیست مشکل اینکه زمان دقیقش رو بدست بیاریم . اگه بشه مشخص کرد که حلقه for چند سیکل کاری زمان میگیریه میشه دقیقا مشخص کرد که تاخیر ایجاد شده چقدر هست .
                      مثلا :
                      for(i=0;i<100;i++);ok
                      for(j=0;j<100;j++);ok
                      {}
                      البته کلمه ok رو برای این گذاشتم که درست نشون داده بشه . این برنامه یه تاخیر 100*100 هست ولی اینکه مقدار این تاخیر چقدر هست من یه برنامه نوشتم که فقط توی حلقه forآ‌ بود . کامپایلر این حلقه for رو تبدیل به حلقه djnz کرد . و شما هم میدونید که DJNZ تاخیرش 4 سیکل هست .
                      ولی سوال اینجاست اگه برنامه پیچیده باشه بازم برای حلقه FOR از DJNZ با این روش استفاده میکنه ، یا اینکه روش دیگه ای داره .
                      به نظر من اگه برنامه شما کوچک هست با فرض اینکه حلقه FOR در واقع 4 سیکل کاری زمان میبره تاخیرتون رو ایجاد کنید .
                      موفق باشید .
                      سلام دوست عزیز. فکر می کنم دو حلقه بالا را که نوشتی مجموعا 100*2 واحد تاخیر ایجاد کنند. برای100*100 واحد باید حلقه اول برداشته شود. با سپاس

                      دیدگاه


                        #12
                        معادل دستور های اسمبلی در C

                        سلام . خوبی ابی جان ؟
                        ممنونم حق با شما بود . من توی پست اصلی درستش کردم .
                        موفق باشید .
                        شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                        هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                        چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                        دیدگاه


                          #13
                          معادل دستور های اسمبلی در C

                          سلام آقای نحوی
                          آیا کامپایلر زبان c به اسمبلی را دارید؟
                          WANT INFORMATION ABOUT PLC OMRON.

                          دیدگاه


                            #14
                            معادل دستور های اسمبلی در C

                            سلام . خوبی دوست عزیز ؟
                            به همین نرم افزار فرانکلین هم این کار رو میکنه یه برنامه اسمبلی مطابق با برنامه سی شما مینویسه و فایل هگز رو از روی اون درست میکنه .
                            موفق باشید .
                            شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                            هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                            چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                            دیدگاه


                              #15
                              پاسخ : معادل دستور های اسمبلی در C

                              سلام بزرگان


                              لطفا اگه از فرمایش کسی استفاده می کنید ، تشکر کنید

                              من اینو چند جا عرض کرده بودم.
                              بعضی ها فکر می کنن باید یه پست بدن و تشکر کنن.

                              دقت کنین.
                              سمت چپ هر پستی دکمه ی تشکر هست اونو بزنین. :mrgreen: :mrgreen:
                              شرمنده اگه اینجا مطرح کردم.

                              مرسی.
                              Upload your files Here. Great Azeri Resumable File Host: http://endir.az/index.php?lang=5

                              دیدگاه

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