علیرضا جان یک دنیا ممنون. بدون ذرهای کم و کاست دلایلت برای من قابل قبوله.
علیرضا جان یک دنیا ممنون. بدون ذرهای کم و کاست دلایلت برای من قابل قبوله.
سلام
برای بدست آوردن ماکزیمم و مینیمم بدون شرط فرمولش همون قدر مطلق دار است اما اینطور که پیداست دعوا سر تابع قدر مطلق بدون پرش است خوب این هم بدون پرش و البته به زبان اسمبلی که کدش هم خیلی کوتاه است هم خیلی سریع : (اینکه چجوری کار میکنه رو از توی منوال های اینتل بخونید) در ضمن روی سی پی یو های پنتیوم ۶ به بالا کار میکنه.
فرض که عدد صحیح علامتدار در رجیستر eax ریخته شده است خروجی شامل قدر مطلق هم در eax بازگردانده میشود :
mov eax,n
mov ebx,eax
neg ebx
or eax,eax
cmovs eax,ebx
ممنون
سیداف
ببخشید یه کم کد شما اشتباه هست :wink:
اولا تمام جنگ ها بر سر این بود که if نداشته باشه ولی دستور CMOV(XX) eax,ebx دارای شرط میباشد. مراجعه شود به همون Manual صفحه 120 از manual دومی :wink:
سلام
بله مشخصه که شرط داره اما شرطش در لول Microcode پیاده سازی شده و بسیار سریع انجام میشه. پرش هم نداره.
البته این روش بیشتر برای بهینه سازی سرعت مفیده :) حیف که تاپیکش مفقود الاثر شد ;) به هر حال یه روش tricky بود...
ممنون
سیداف
:wink:
x:=x+y;
y:=x-y;
x:=x-y;
آخرین ویرایش به وسیله مسعود اقدسی فام : شنبه 06 فروردین 1390 در 18:29 عصر