ورود

View Full Version : and دو بایت



mamad64bit
دوشنبه 22 تیر 1388, 11:11 صبح
سلام دوستان
من نمیدونم معنی این عبارت یعنی چی AND AX,1
یعنی کاربردشو نمیدونم
مثلا میدونم وقتی این دو با هم and میشن حاصل چی میشه مثلا
10101010 & 10101111
ولی کاربرد عملگرهای باینری رو نمیدونم لطفا راهنماییم کنید
یا مثلا or ax,1
...

tdkhakpur
دوشنبه 22 تیر 1388, 13:27 عصر
سلام
خوب این هم مثل سایر عملیات ریاضی هست که اکثرا برای شرطها و بررسی در الگوریتم بکار برده میشود.
مثلا با بررسی بیت سوم که شما با and صفر یا یک کرده باشید میتوانید یک خاص انجام دهید یعنی اگر صفر بود یک تابع و اگر یک بود تابعی دیگر صدا زده شود.
به طور کلی میتوانید برای استفاده بهینه از حافظه از چنین کار استفاده کنید.

mamad64bit
دوشنبه 22 تیر 1388, 17:30 عصر
بجز کارایی حافظه چه کاربرد دیگه ای دارند
and ax,1 یعنی چی به طور دقیق ؟ یعنی مقدار ax بر 2 تقسیم میکنه ؟

tdkhakpur
دوشنبه 22 تیر 1388, 17:38 عصر
سلام
ببینید الگوریتم کار به and معنی میدهد نه خود دستور با and شما فقط بیتها را صفر میکنید.


and ax, 1

کد بالا یعنی یه غیر از بیت اول سایر بیت های را صفر کن

mamad64bit
دوشنبه 22 تیر 1388, 21:12 عصر
ببخشید منظور از بیت اول همان lsb هست ؟ 00000001 در اینجا بیت اول میشه 1 ؟

tdkhakpur
دوشنبه 22 تیر 1388, 21:35 عصر
سلام
نخیر گفتم کار and صفر کردن بیتهاست ولی اگر شما یک بیت را با مقدار 1 and کنید نتیجه بیت قبلی تغییر نخواهد کرد.
در کد بالا هم هیچ تاثیری بر مقدار بیت اول ax نداشته و فقط بیتهای دیگر را به اجبار صفر می کند.