# برنامه نویسی سطح پایین > برنامه نویسی اسمبلی خانواده x86 > سوال: تقسیم با استفاده از شیف دادن

## Arcsinos

سلام
من چند روز یه مطلبی خوندم که گفته بود ضرب تو مبنای دو با استفاده از شیف به چپ این طوری انجام میشه مثلا x یه عدده که میخواییم در 3 ضرب کنیم ابتدا یه شیفت به چپ میدیم که میشه 2x و این عدد رو با x جمع میکنیم و نتیجه میشه 3x و عدد x رو میشه با این روش تو هر عدد دیگه ای ضرب کرد .

سوال : حالا میخوام با استفاده از شیفت به راست عمل تقسیم رو انجام بدم ولی من نمیدونم مثلا تقسیم عدد x بر 3 چطوری میشه ؟ تقسیم بر دو که میشه یه شیفت به راست یا تقسیم بر 4 هم میشه 2 تا شیفت به راست . حالا باید چه عمل دیگه ای انجام بدم تا تقسیم x بر عدد سه رو بدست بیارم ؟

یا در صورت امکان روش تقسیم تو مبنای دو رو اگه به جز روش تفریق های متوالی هست رو بگید ، یا اگه برای ضرب به جز روشی که روی کاغذ از اون استفاده میکنیم بلدید بگید .

خیلی ممنون

----------


## Arcsinos

سلام دوستان من جواب رو فهمیدم ، فکر میکنم شما هم بلد بوده باشید ولی به خاطر طولانی بودن بی خیال جواب دادن به این سوال شدید ، من هم بهتون حق میدم و جواب رو برای کسایی که این موضوع رو نمیدونستن میذارم . من اینجا جواب رو با یه مثال میزارم و مثالم تقسیم عدد 7 به عدد 2 هست . پس در ابتدا باقیمانده همان 7 میباشد . نکته ی دیگه اینکه این تقسیم برای عدد 4 بیتی ساخته شده پس مقسوم علیه همون در 4 بیت با ارزش یک بایت قرار میگیره و چهار بیت کم ارزش یک بایت هم در ابتدا صفر هستند . Q0=0 یعنی Q یه شیفت به چپ به اضافه ی 0 و Q0=1 یعنی Q یه شیفت به چپ به اضافه ی 1 . Quotient یعنی خارج قسمت ، Divisor یعنی مقسوم علیه  و Remainder یعنی باقیمانده .

www.jpg

----------


## misam490

ممنون arcsin جان کمک بزرگی کردی ده دهیشو نوشتم

----------

