اطلاعیه

Collapse
No announcement yet.

برای ریختن در حافظه چه کار باید بکنیم؟

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

    برای ریختن در حافظه چه کار باید بکنیم؟

    :angry:
    mov DPTR,#1F0H
    mov @DPTR, A
    این برنامه در @ ERROR دارد. چه طوری داخل DPTR مقدار A را بریزیم؟

    #2
    پاسخ : برای ریختن در حافظه چه کار باید بکنیم؟

    سلام.
    نکته اول اینکه رجیستر DPTR برای دستیابی به فاصله هایی بیشتر از یک بایت هست، این آدرسی هم که شما نوشتید در واقع دارید RAM داخلی رو آدرس دهی میکنید پس نیازی به استفاده از DPTRآ‌ نیست.
    ولی اگه میخواهید یک RAM یا ROM خارجی که بیشتر از 256 بایت هست رو آدرس دهی کنید ناچارید از DPTR استفاده کنید.
    برای این منظور باید خط دوم رو اینطوری تغییر بدید:
    MOVX @DPTR,A
    برای خوندم هم اینطوری میشه انجام داد:
    MOVX A,@DPTR

    برای دسترسی به آدرس های مختلف ROM هم باید دستور زیر رو استفاده کنید (توجه کنید که از ROM میشه خوند ولی نمیشه توش نوشت):
    MOVC A,@A+DPTR

    در هر صورت این دستوری که نوشتید اشتباه هست باید به جای DPTR از R0آ‌ یا R1 برای آدرس دهی غیر مستقیم استفاده کنید نه DPTR آ‌برای این کاربرد شما باید اینطوری نوشته بشه که :

    MOV R1,#1F0H
    MOV @R1,A

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

    دیدگاه


      #3
      پاسخ : برای ریختن در حافظه چه کار باید بکنیم؟

      سلام
      RAM خارجی هم می تواند از آدرس 00 شروع شود. هیچ گناهی نداره که محتوای DPTR هم 1F0 بشه.
      تنها مشکل در دستور است. برای استفاده از حافظه خارجی : MOVX @DPTR,A یا MOVX A,@DPTR

      دیدگاه

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