اطلاعیه

Collapse
No announcement yet.

لطفا یکی این دستور assembly ترجمه کنه به C

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

    لطفا یکی این دستور assembly ترجمه کنه به C

    سلام و خسته نباشید به تمام دوستان و مهندسان یک مشکل برای من پیش اومده که اگر کمک کنیید متشکر می شوم اونم اینه که برای یک پروژه یکی به من راه حلی برای ارسال اطلاعات پیشنهاد کردش اونم ارسال به روش ieeefloating point to decimal حالا یک چیزی پیداکردم که به زبان اسمبلی حالا می خوام اینو یک نفر محبت کنه به c تبدیل کنه که بتونم اینو تو کامپیوتر با زبان C# بنویسمش متشکر می شوم اگر کمکم کنید
    float f_IEEEtoPIC(int32 f)
    {

    float * ret;
    #locate f=0x20

    ret = &f;

    #asm

    // swap the outer bytes
    movf 0x20,W
    xorwf 0x23,W
    xorwf 0x23,F
    xorwf 0x23,W
    movwf 0x20

    // swap the inner bytes
    movf 0x21,W
    xorwf 0x22,W
    xorwf 0x22,F
    xorwf 0x22,W
    movwf 0x21

    #endasm

    #if defined(__PCB__) || defined(__PCM__)
    #asm

    // switch the bits
    rlf 0x21
    rlf 0x20
    rrf 0x21

    #endasm
    #elif defined(__PCH__)
    #asm

    // switch the bits
    rlcf 0x21
    rlcf 0x20
    rrcf 0x21

    #endasm
    #else
    #error Invalid complier defined
    #endif

    return *ret;
    }

    #2
    پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

    با سلام،

    این یه روتین به C هستش و قسمت هایی که به اسمبلی هست ( که تقریبا کلشه ) ترجمه شدنی نیست......

    در ضمن، این یه روتین سطح پائین برای میکرو هست و نمیشه بردش توی C# ...
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp

    دیدگاه


      #3
      پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

      اول تشکر از جوابتون 2- منظورتون از این یه روتین سطح پائین برای میکرو هست و نمیشه بردش توی C#چیه؟ 3- شما راه حلی دارید که بشه اطلاعات رو به یه مقدار ثابت ارسال کردش مثلا اگر ما چه 8 یا 682455 رو بفرستیم هردوش به یک مقدار ارسال شه مثلا یک جمله 4 تایی ارسال بشه به من فقط این روشو پیش نهاد کردن یعنی روش ieeefloating poin اگر شما راه حلی داشته باشید که به من پیشنهاد کنیید ممنون می شوم

      دیدگاه


        #4
        پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

        با سلام،

        راستش من راه حلی برای شما ندارم و از این ieeefloating point to decimal هم هیچ چیز نمیدونم!

        اما چیزی که این وسط مسلمه اینه که این روتین که شما گذاشتی، برای یه سری خاصی از میکرو کنترلر ها هست ( خانواده PIC ) و این روتین به C نوشته شده و برای اینکه سرعت پردازش در حداکثر خودش باشه، بخش های اصلی محاسباتی به اسمبلی نوشته شدن و حالا شما میخوای این کدها رو مپ کنی به C# که توی PC ازش استفاده کنی ولی اینا برای PC هیچ مفهومی ندارن.

        اگر میخوای بدونی که الگوریتم ieeefloating point to decimal چیه، از این کد چیزی دستگیرت نمیشه، میتونی بری توی wikipedia و در موردش مطالعه کنی و اگر سریعا یه کد میخوای، بهتره یکی از این سایت ها که با جاوا هستند و عدد رو میگیرن و این الگوریتم رو رووش پیاده میکنند سورسش رو ببینی مثل اینا :

        http://www.h-schmidt.net/FloatApplet/IEEE754.html
        http://babbage.cs.qc.edu/IEEE-754/

        بهر حال، معذرت میخوام که نمیتونم بیشتر از این کمکت کنم، ولی خودم هم کنجکاو شدم، اگر چیزی دستگیرم شده، بهت اطلاع میدم.

        در ضمن فکر نکنم که این ieeefloating point to decimal در رابطه با موضوع اصلیت بهت کمک کنه....
        مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

        Sh_Nourbakhsh@Yahoo.com

        http://s2.picofile.com/file/7170362468/_Wall_e_.jp

        دیدگاه


          #5
          پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

          راستی، توی قسمت FAQ این سایت در مورد اینکه چطوری میتونید سورس C یا C++ این الگوریتم رو بدست بیارید، توضیح داده
          http://www.h-schmidt.net/FloatApplet/IEEE754.html
          مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

          Sh_Nourbakhsh@Yahoo.com

          http://s2.picofile.com/file/7170362468/_Wall_e_.jp

          دیدگاه


            #6
            پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C


            1- اولا این الگوریتم چکار میکنه؟ اگر منظور به دست آوردن پترن عددی یک عدد float هست که براحتی با یک union امکانپذیره.

            2- البته من اسمبلی PIC بلد نیستم. اما فکر میکنم این کد کار خاصی انجام نمیده. در دو بلوک اول فقط byte order عدد float عوض شده. و در قسمت دوم هم فقط 3 تا چرخش یک بایتی داریم.
            اگر همچین چیزی باشه که نوشتنش توی #C از راحت هم یه چیزی اونورتره.

            دیدگاه


              #7
              پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

              سلام دوباره اول باید تشکر کنم از آقای aivhl برای پاسختوون اما با آقای رضا آقازاده موافق ترم اگه بشه ترجمش کردش میشه تو C# برش گردوند

              دیدگاه


                #8
                پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

                راستی یک چیز دیگه که جالب بودش این که اطلاعاتی که من می گیرم 10 بیتیه اما این سایتی که شما دادید برای اطلاعات 8 بیتی، تو مسالاش اما هر جفتش به گفته سایت 32 بیتی

                دیدگاه


                  #9
                  پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

                  ببینم. اصلا مشکلتون چیه؟ میخوایین یک عدد اعشاری رو از PC برای PIC بفرستین؟

                  دیدگاه


                    #10
                    پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

                    من می خوام یک سری اطلاعاتو از میکرو به کامپیوتر بفرستم اما چون مقادیر متغیرن یعنی بعضی وقتا 2 رقمی بعضی وقتا3 رقمی بعضی وقتا 4 رقمی میشه می خوام برای فرستادن تعداد رقمامو یکی کنم یعنی مثلا همش بیشه 4 رقمی به من این روشو پیشنهاد دادن حالا اگر شما هم روش دیگه ای دارید ممنون میشوم کمکم کنیید

                    دیدگاه


                      #11
                      پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

                      تعداد ارقام که مهم نیست. فقط در زمان نمایش تعداد ارقام مهم میشه. رنج عددی تون چقدره؟

                      دیدگاه


                        #12
                        پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

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

                        دیدگاه


                          #13
                          پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

                          بذار اینجوری بگم:
                          ماکزیمم و مینیمم تمام اعدادی که ممکنه رد و بدل بشن چنده؟ (در تمامی حالات)

                          دیدگاه


                            #14
                            پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

                            از 1 تا 4 رقم

                            دیدگاه


                              #15
                              پاسخ : لطفا یکی این دستور assembly ترجمه کنه به C

                              سلام دوباره آقای رضا آقازاده من متشکر می شوم دوباره کمکم کنید چون پروژم به خاطر همین موضوع عقب افتاده

                              دیدگاه

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