اطلاعیه

Collapse
No announcement yet.

سوال در مورد اشاره گر

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

    سوال در مورد اشاره گر

    سلام دوستان
    من این برنامه ساده رو نوشتم که محتوای آدرس 50 HEX رو بفرستم روی PORTB . زمانی که خود مقدار 50HEX رو میریزم توی رجیستر 16 بیتی Z این عمل انجام نمیشه ( نیم بایت بالای 50H توی R31 و نیم بایت پایین 50H توی R30 میریزم ولی به آدرس 50H اشاره نمیشه ) ولی وقتی به این شکل که اینجا نوشتم با یک بیت شیفت به چپ مقدار دو برابر 50H توی Z ریخته میشه درست به آدرس 50H پرش میکنه و محتوای اوی که رو توی R16 و در نتیجه روی پورت B میریزه.
    کسی میدونه چرا باید اون شیفت به چپ انجام بشه؟ جایی از برنامه من مشکل داره یا کلا اینجوری هست که باید دوبرابر آدرس مورد نظر توی اشاره گر ریخته بشه؟

    #include "m32def.inc"

    .ORG 0X0000

    SETUP:
    LDI R16,HIGH(RAMEND)
    OUT SPH,R16
    LDI R16,LOW(RAMEND)
    OUT SPL,R16
    LDI R16,$FF
    OUT DDRB,R16

    MAIN:
    LDI R31,HIGH(0X50<<1)
    LDI R30,low(0x50<<1)
    LPM R16,Z
    OUT PORTB,R16
    RJMP MAIN

    .ORG 0X50
    .DB $4
    از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
    هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
    اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
    اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
    شاد و موفق باشید

    #2
    پاسخ : سوال در مورد اشاره گر

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

    دیدگاه

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