امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 3
  • 1
  • 2
  • 3
  • 4
  • 5
دستورات چرخشی
نویسنده پیام
Admiral آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 16
تاریخ عضویت: اردیبهشت ۱۳۸۹

تشکرها : 35
( 0 تشکر در 0 ارسال )
ارسال: #1
Question  دستورات چرخشی
با تشکر از سایت خوبتون.
اگر میشه یک توضیح کلی درباره دستورات چرخشی در اسمبلی بدهید.
۲۱-اردیبهشت-۱۳۸۹, ۰۳:۱۴:۰۱
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: دستورات چرخشی
در رجیسترها شما به طور مستقیم فقط به 16 بیت دسترسی دارین و 16 بیت دیگه به صورت Carry bit میباشد
برای دسترسی به این Carry bit ها یا بیتهای 15-31 شما باید با استفاده از توابع چرخش مثل ROR چرخش به راست و ROL چرخش به چپ جای بیتهای اصلی را با بیتهای Carry عوض کنید

شدیدا به شما توصیه میکنم کتاب اموزش اسمبلی تالیق استاد نصیری رو مطالعه کنین

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۱-اردیبهشت-۱۳۸۹, ۱۴:۲۱:۲۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : The.Ghost, Admiral
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #3
RE: دستورات چرخشی
سلام:
دستورات چرخش رشته های بيتی را به صورت دايره ای حرکت می دهد اين دستورات مشابه شيفت عمل می کنند با اين تفاوت که بيتی که از يک طرف از داده خارج می شود به طور دوار از جهت ديگر وارد آن می شود. پردازنده 8086 چهار دستورالعمل چرخش (rol ، ror ، rcl و rcr) دارد.

ROL
دستورالعمل (rotate left) rol بيت های عملوند خود را به سمت چپ چرخش می دهد. فرم کلی آن به صورت زير است:
کد:
rol dest, count
دستورالعمل rol بيت های عملوند مقصد خود را به تعداد count به سمت چپ چرخش می دهد. بيتی که از سمت چپ خارج می شود از سمت راست وارد عملوند می شود.با ارزش ترين بيت عدد در فلگ carry کپی می شود.

عملوند اول عملوند مقصد است و عملوند دوم تعداد شيفت ها را مشخص می کند و می تواند عدد 1 يا برای تعداد بيشتر ثبات CL باشد. نوشتن عدد فوری بيشتر از 1 مستقيما در دستور غير مجاز است.
دستورالعمل rol به شکل های زير می تواند استفاده شود:
کد:
rol register, 1
rol memory, 1
rol register, CL
rol memory, CL

ROR
دستورالعمل (rotate right) ror بيت های عملوند خود را به سمت راست چرخش می دهد. فرم کلی آن به صورت زير است:
کد:
ror dest, count
دستورالعمل ror بيت های عملوند مقصد خود را به تعداد count به سمت راست چرخش می دهد. بيتی که از سمت راست خارج می شود از سمت چپ وارد عملوند می شود.
مشابه دستورالعمل rol عملوند دستورالعمل ror می تواند ثبات يا حافظه باشد. تعداد چرخش عدد 1 يا ثبات CL است.
کم ارزش ترين بيت عملوند وارد فلگ carry می شود. بقيه فلگ ها مشابه دستورالعمل rol تاثير می پذيرند.

RCL
دستورالعمل (rotate through carry left) rcl همانطور که از نامش پيدا است، بيت ها را از طريق فلگ carry به سمت چپ می چرخاند. شکل کلی آن به صورت زير است:
کد:
rcl dest, count
دستورالعمل rcl محتوای فلگ Carry را از سمت راست وارد عملوند مقصد می کند، سپس بيت های عملوند را به سمت چپ شيفت می دهد و آخرين بيت سمت چپ را وارد فلگ Carry می شود.
دستورالعمل rcl مشابه rol استفاده می شود و روی فلگ ها تاثير می گذارد.

RCR
دستورالعمل (rotate through carry right) rcr بيت های داده را از طريق فلگ carry به سمت راست می چرخاند. شکل کلی آن به صورت زير است:

کد:
rcr dest, count
دستورالعمل rcr محتوای فلگ Carry را از سمت چپ وارد عملوند مقصد می کند، سپس بيت های عملوند را به سمت راست شيفت می دهد و آخرين بيت سمت راست را وارد فلگ Carry می شود.
دستورالعمل rcr مشابه ror استفاده می شود و روی فلگ ها تاثير می گذارد.

Assembly Language 039

۲۱-اردیبهشت-۱۳۸۹, ۱۴:۵۰:۰۸
ارسال‌ها
پاسخ
تشکر شده توسط : Scorpion, Admiral, x7337x


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question دستورات ضرب و تقسیم The.Ghost 0 1,757 ۱۶-فروردین-۱۳۹۱, ۰۶:۰۱:۲۳
آخرین ارسال: The.Ghost
Question دستورات اسمبلی The.Ghost 0 2,525 ۱۶-فروردین-۱۳۹۱, ۰۵:۴۹:۰۷
آخرین ارسال: The.Ghost
Question دستورات گسترش داده Admiral 1 2,462 ۲۹-اردیبهشت-۱۳۸۹, ۰۱:۳۳:۳۲
آخرین ارسال: The.Ghost
Question دستورات جمع و تفريق Admiral 1 4,895 ۲۶-اردیبهشت-۱۳۸۹, ۱۵:۱۳:۲۲
آخرین ارسال: The.Ghost

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS