اطلاعیه

Collapse
No announcement yet.

ذخیره program counter در هنگام وقفه

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

    ذخیره program counter در هنگام وقفه

    سلام دوستان.
    من بر روی LPC1768 و کامپایلر keil کار میکنم. یه سوال دارم زمانیکه وقفه زمان داریم و قرار است (به عنوان مثال) بعد از 3 ثانیه تابع وقفه اجرا شود مقدار program counter در کجا ذخیره میشود؟ و برنامه به چه صورت پس از اجرای تابع وقفه به محل قبلی برمیگردد؟ Program counter در رجیستر LR ذخیره میشه؟
    ممنون میشم از لطفتون.

    #2
    پاسخ : ذخیره program counter در هنگام وقفه

    فرقی نداره همشون توی رم ذخیره میکنن و ادرس مکان ذخیره را میزارن تو stack pointer محل ذخیره رو بفارسی میگن پشته
    در عملیات کال کردن هم مقدار شمارشگر برنامه در پشته هل داده میشود و هنگام برگشت از روتین کال مجددا از پشته کشیده و به شمارشگر کانتر لود میشود
    دستور اسمبلی:
    push=مقدار شمارشگر برنامه را در استک هل میدهد
    pop=مقدار هل داده شده در استک را از استک خارج و در شمارشگر برنامه لود میکند
    جدیدترین ویرایش توسط kamy007; ۱۸:۵۸ ۱۳۹۶/۰۸/۰۱.

    دیدگاه


      #3
      پاسخ : ذخیره program counter در هنگام وقفه

      سلام
      ممنون از راهنماییتون.

      دیدگاه

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