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
+
+
وحید محمدی - وبلاگ وحیدمی