اطلاعیه

Collapse
No announcement yet.

پیدا کردن آدرس شروع یک خط کد C

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

    پیدا کردن آدرس شروع یک خط کد C

    سلام دوستان
    یه سوال دارم، یک خط کد C ممکنه از چند تا خط و کد اسمبلی تشکیل شود. رجیستر program counter شامل آدرس دستورات اسمبلی است.
    آیا رجیستری برای ذخیره آدرس شروع دستورات C وجود نداره؟
    به عبارتی، فرض کنیم دو خط کد C داریم که خط اول شامل دو خط اسمبلی است. پس دارای آدرسهای 0x00000001 و 0x00000005 است.
    خط دوم C مثلا شامل 3 خط اسمبلی است پس شامل آدرسهای 0x0000000C، 0x000000009و 0x0000000010 است.
    شمارنده برنامه (R15 یا program counter=pc) مقادیر 0x000000001 تا 0x00000000010 را در خود ذخیره میکند.
    حالا میخوام بدونم رجیستری وجود نداره تا آدرس شروع هر دستور c یعنی آدرسهای 0x000000001 و0x000000009 را در خود ذخیره کند.
    لطفا سریع کمک کنید . ممنون میشم
    شروع و پایان دستورات Cاز کجا مشخص میشه؟

    #2
    پاسخ : پیدا کردن آدرس شروع یک خط کد C

    با سلام
    من که در میکرو سی کار میکنم ، کامپایلر برای هر فایل برنامه سی یک فایل اسمبلی درست میکند
    که در آن ، هر سطر از برنامه سی (به صورت کامنت) آمده و در زیر آن کد اسمبلی آن سطر
    نوشته شده ، البته آدرس هر دستور العمل را در این فایل نیامده ولی میتوان با دانستن
    طول هر دستور العمل ، آدرس هر خط را پیدا کرد (فکر میکنم تو PIC دستورالعمل ها طول ثابتی دارند)

    کذ زیر را ببینید:
    کد:
    _StartCharge:
    
    ;pic.c,68 ::         void StartCharge()
    ;pic.c,70 ::         if(xaux)
        MOVF        _xaux+0, 0 
        IORWF       _xaux+1, 0 
        BTFSC       STATUS+0, 2 
        GOTO        L_StartCharge0
    ;pic.c,72 ::         xcharge=1;
        MOVLW       1
        MOVWF       _xcharge+0 
        MOVLW       0
        MOVWF       _xcharge+1 
    ;pic.c,73 ::         maxvoltage=ndv=0;
        CLRF        _ndv+0 
        CLRF        _ndv+1 
        CLRF        _maxvoltage+0 
        CLRF        _maxvoltage+1 
    ;pic.c,74 ::         XCHARGEPORT=1;
        BSF         PORTB+0, 6 
    ;pic.c,75 ::         BuzzerTimer+=4;
        MOVLW       4
        ADDWF       _BuzzerTimer+0, 1

    دیدگاه


      #3
      پاسخ : پیدا کردن آدرس شروع یک خط کد C

      خیلی ممنونم

      دیدگاه


        #4
        پاسخ : پیدا کردن آدرس شروع یک خط کد C

        نوشته اصلی توسط شبکه 94 نمایش پست ها
        شمارنده برنامه (R15 یا program counter=pc) مقادیر 0x000000001 تا 0x00000000010 را در خود ذخیره میکند.
        درسته تاریخ بحث قدیمیه، ولی دیدم آنلاینی گفتم بهت گوش زد کنم!
        شمارنده برنامه هیچی توی خودش ذخیره نمیکنه!!
        مگر، آدرس دستورالعمل جاری در حال پردازش!
        ◙◙◙◙◙ میخوام به دوستان یه کتاب معرفی کنم! وقت کردید، بخونید - اسمش هست قرآن، سال نشر 10، نویسنده: خدا . ◙◙◙◙◙

        دیدگاه

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