تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 12

نام تاپيک: سوال درباره زبان اسمبلی

  1. #1
    اگه نباشه جاش خالی می مونه madadnoki's Avatar
    تاريخ عضويت
    Mar 2010
    محل سكونت
    تهران
    پست ها
    386

    14 سوال درباره زبان اسمبلی

    سلام ! سایت انگار تاپیکی درباره زبان اسمبلی نداره .برای همین ناچار سوالم رو اینجا مطرح میکنم
    از مدیر سایت خواهش میکنم اگه جای این پست اشتباه اون رو به محل مناسب انتقال بده
    حالا سوال:
    برنامه زیر رو در محیط keil که یک کامپایلر برای 8051 است و به زبان اسمبلی باید برنامه رو توش نوشت syntax error میده ......به نظر دستورها درسته ولی نمیدونم اشکال از کجاست !!!!!!!!!! لطفا راهنمایی کنید

    org 00h
    ;
    start : mov a,p1
    mov p2,a
    mov b,p2
    anl b,#0F0H
    SHR b
    mov p2,b
    sjmp start
    ;
    end

  2. #2
    اگه نباشه جاش خالی می مونه MosaferJade's Avatar
    تاريخ عضويت
    Feb 2011
    محل سكونت
    مگه فرق هم میکنه
    پست ها
    260

    پيش فرض

    سلام
    به حروف بزرگ و کوچک حساس نیست؟
    بخاطر حلقه بینهایت برنامه نیست ؟
    شایدم بخاطر این end آخری باشه . یه ":" آخرش بزار

    راستی اگه برنامه کامپایلرش رو داری اگه میشه برام آپ کن لازمش دارم
    مرسی
    Last edited by MosaferJade; 11-03-2011 at 11:22.

  3. #3
    اگه نباشه جاش خالی می مونه madadnoki's Avatar
    تاريخ عضويت
    Mar 2010
    محل سكونت
    تهران
    پست ها
    386

    پيش فرض

    * به حروف کوچک و بزرگ حساس نیست
    * نه اون حلقه همیشه باید باشه
    * end هم مشکلی نداره
    از خط SHR b ارور میگیره!!!!!!!!!!!!!

    درست متوجه نشدم !!!!!!!!!برنامه keil رو لازم دارید؟؟
    در ضمن من بلد نیستم upload کنم ........mail تو بده برات میل کنم.(اگه منظورت نرم افزار keil است)
    در ضمن حجم فایل : 18MB

  4. #4
    داره خودمونی میشه srmsom's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    32

    پيش فرض

    ميشه بگي SHR b يعني چي ؟
    اگه منظورش شيفت به راست است از RR استفاده كن

  5. #5
    اگه نباشه جاش خالی می مونه madadnoki's Avatar
    تاريخ عضويت
    Mar 2010
    محل سكونت
    تهران
    پست ها
    386

    پيش فرض

    همون کار RR رو انجام میده,,,,,,, RR هم نوشتم ولی eror زیر رو میده:
    REGISTRATION OPERAND EXPECTED



    برنامه:
    org 00h
    ;
    start : mov a,p1
    mov p2,a
    mov b,p2
    anl b,#0F0H
    RR b
    mov p2,b
    sjmp start
    ;
    end
    Last edited by madadnoki; 11-03-2011 at 12:43.

  6. #6
    داره خودمونی میشه srmsom's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    32

    پيش فرض

    الان حداقل چهار سالي ميشه اسمبلي ننوشتم پس اگر راهنما ييم بدردت نخورد ببخش ولي خطوط زير را امتحان كن ضرر نداره.
    mov a,b
    rr a

  7. #7
    اگه نباشه جاش خالی می مونه madadnoki's Avatar
    تاريخ عضويت
    Mar 2010
    محل سكونت
    تهران
    پست ها
    386

    پيش فرض

    برنامه دیگی error نمیده ولی تو پروتوس اجرا نمیشه..........
    سوال اینه که : <<برنامه ای بنویسید که نیم بایت با ارزش پورت 2 را روی سون سگمنت نمایش دهد.فرض اینکه سون سگمنت به بخش کم ارزش متصل باشد.>>
    من اومدم یه مقدار از پورت 1 گرفتم ریختم تو پورت 2 ..........بعد با F0 هگز and کردم ...حالا باید 4 بار شیفت به راست بدیم که بیت پر ارزش روی 4 بیت کم ارزش انتقال پیدا کنه........ولی تو پروتوس اجرا نمیشه ....چرا؟

    مدار پروتوس :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    برنامه :
    org 00h
    ;
    start : mov a,p1
    mov p2,a
    mov b,p2
    mov a,b
    rr a
    rr a
    rr a
    rr a
    anl a,#0F0H
    mov p2,a
    sjmp start
    ;
    end

  8. #8
    داره خودمونی میشه srmsom's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    32

    پيش فرض

    برنامه رو اينطور بنويس.
    org 00h
    ;
    start : mov a,p1
    anl a,#0F0H
    rr a
    rr a
    rr a
    rr a
    mov p2,a
    sjmp start
    ;
    end

  9. #9
    اگه نباشه جاش خالی می مونه madadnoki's Avatar
    تاريخ عضويت
    Mar 2010
    محل سكونت
    تهران
    پست ها
    386

    پيش فرض

    درست شد ممنون.
    خطای REGISTRATION OPERAND EXPECTED یعنی چی؟
    چرا b رو حذف کردید؟

  10. #10
    داره خودمونی میشه srmsom's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    32

    پيش فرض

    قابلي نداشت . من هم ممنونم چون برام يك يادآوري شد.
    اين ارور REGISTRATION OPERAND EXPECTED يعني عملوند اشتباه است . عملوند دستور rr بايد a باشد.
    شما در خط اول mov a,p1 عدد مورد نظر را به a انتقال داده ايد و ديگر نيازي به انباره كمكي b نداريد انباره b براي دستوراتي مثل تقسيم كه نياز به دو عملوند هست اسنفاده مي شود.
    با اين حال برنامه شما هم درست بود اگر در خط دوم mov p2,a را نداشت. چون عدد صحيح در آخرين خط برنامه در p2 قرار ميگيرد ولي چون عددي كه در اين خط در p2 قرار ميگيرد اشتباه است و برنامه مدام در حال اجرا است p2 بين عدد صحيح و اشتباه در حال تغيير است.
    لطفا براي تشكر از دكمه تشكر استفاده كنيد.

  11. این کاربر از srmsom بخاطر این مطلب مفید تشکر کرده است


صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •