Assembly is real open source.




addpd

دستور addpd






Usage: ADDPD dest,src Modifies flags:None

روش بکارگیری : از چپ به راست  دستور addpd  ، عملوند مقصد ، عملوند مبدا



Performs an SIMD add of the two packed double-precision floating-point values from the 'src' and the 'dest' operand and stores the packed double-precision floating-point results in the 'dest' operand. The 'src' operand can be an XMM register or a 128-bit memory location. The 'dest' operand is an XMM register.

دستور ADDPD  یک عملیات جمع  SIMD روی دو مقدار ممیز شناور با دقت مضاعف بسته ای روی عملوند مبدا و مقصد اجرا می کند و  نتایج ممیز شناور با دقت مضاعف بسته ای را در عملوند مقصد ذخیره می کند  .  عملوند مبدا می تواند یک رجیستر XMM یا یک مکان 128 بیتی آدرس باشد . عملوند مقصد یک رجیستر XMM می باشد .


دستور ADDPD مخفف عبارت زیر است :


ADD Packed Double-Precision FP Values

 



 



ADDPD xmm1,xmm2/mem128 ; 66 0F 58 /r [WILLAMETTE,SSE2]


در فرمول بالا ، بعد از دستور ADDPD ، عملوند مقصد می تواند یک رجیستر XMM باشد مثلا xmm1  و عملوند مبدا ( عملوند سمت راست ) می تواند یا یک رجیستر xmm  باشد ( مثلا xmm2 ) یا یک آدرس 128 بیتی حافظه باشد .


کاراکتر  /  به  معنای  یا  می باشد . دستور ADDPD در این حالت به کد 660F58 تبدیل می شود . r  در اینجا می تواند به معنای register باشد . SSE2 یک استاندارد جدید است که از تعدادی دستورالعمل جدید پردازنده ی اینتل پشتیبانی می نماید .


نکته : شرکت اینتل : در هر نسل از پردازنده های جدید خود  علاوه بر تمامی دستورات قدیم و امروز ، تعدادی دستور جدید را نیز به معماری پردازنده های خود اضافه می نماید .


بنابراین پردازنده هایی که از استاندارد SSE2 استفاده می کنند در حال حاضر دارای بیشترین دستورات زبان اسمبلی می باشند  و به برنامه نویس زبان اسمبلی قدرت  و آزادی بیشتری اعطا می نمایند .

هرچه تعداد دستورات زبان اسمبلی بیشتر باشد قدرت و انعطاف پذیری برنامه نویس نیز بیشتر می شود زیرا جزئیات بیشتری را می تواند درک کرده و در برنامه های خود بکار گیرد .


باید توجه داشت که اسمبلی یک زبان سطح پایین است و در نتیجه هرچه تعداد دستورالعملهایش بیشتر باشد قدرت و انعطاف پذیری اش  نیز بیشتر می شود زیرا کارهای بیشتری می تواند انجام دهد که سایر زبانها از انجام بسیاری از  این کارها عاجز هستند .


برهمین اساس قدرت پردازنده ی اینتل از پردازنده ی آرم بسیار بیشتر است زیرا دستورالعملهای بسیاری بیشتر و دقیقتری دارد که  جزئیات بسیار بیشتری را شامل می شوند و قدرت مانور پردازنده را برای انجام کارهای سنگین ، بیشتر می نمایند . 




ADDPD performs addition on each of two packed double-precision FP value pairs.

دستور ADDPD  عملیات جمع را روی هرکدام از دو زوج مقدار ممیز شناور بسته ای دقت مضاعف ، اجرا می نماید .



 


dst[0-63] := dst[0-63] + src[0-63],


dst[64-127] := dst[64-127] + src[64-127].




 



The destination is an XMM register. The source operand can be either an XMM register or a 128-bit memory location.

  مقصد ؛ یک رجیستر XMM می باشد ( که در نقش یک عملوند ظاهر می شود زیرا این دستور مربوط به خود پردازنده است ) . عملوند مبدا می تواند یا یک رجیستر XMM  یا یک ادرس  از حافظه ی 128 بیتی باشد .



 


SIMD Floating-Point Exceptions

استثنائات ممیز  شناور SIMD  می تواند در مورد مسائل زیر باشد:



Overflow, Underflow, Invalid, Precision, Denormal.

سرریز ، پاریز ، بی اعتبار ، دقت ، غیرطبیعی



+

الگوی مفهومی  کاربرد این دستور  در RosAsm :


به جای xmm1   و  Label باید  عبارت مناسبی را بنویسیم تا برنامه اجرا شود .


نکته : با توجه به  عملکرد تخصصی این دستور که مستقیما به معماری پردازنده ی اینتل  مربوط می شود امکان دارد که این برنامه هرگز روی کامپیوتر شما اجرا نشود و یا اجرا کردن اش با خطرات غیرقابل پیش بینی  همراه باشد .


ابتدا مطمئن شوید که پردازنده ی کامپیوترتان از استانداردهای تخصصی  XMM و  SSE2 و مجموعه ی دستورالعملهای جدید  ، پشتیبانی می کند .






main:



addpd   xmm1  label


ret


+

+

وحید محمدی - وبلاگ وحیدمی