امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
دستورات گسترش داده
نویسنده پیام
Admiral آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 16
تاریخ عضویت: اردیبهشت ۱۳۸۹

تشکرها : 35
( 0 تشکر در 0 ارسال )
ارسال: #1
Question  دستورات گسترش داده
سلام
لطفا درباره دستورات گسترش داده در اسمبلی توضیح دهید.
خواهش می کنم.
۲۸-اردیبهشت-۱۳۸۹, ۰۴:۰۷:۰۶
ارسال‌ها
پاسخ
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #2
RE: دستورات گسترش داده
در بعضی از محاسبات خصوصا تقسيم و ضرب نياز به افزايش اندازه داده از يک بايت به يک کلمه يا از يک کلمه به يک کلمه مضاعف است. اعداد بدون علامت با اضافه کردن صفر در سمت چپ به سادگی گسترش می يابند. ولی برای افزايش طول يک عدد علامتدار بايد بيت علامت در سمت چپ عدد تکرار شود. دستورات تبديل بيت علامت بسط می دهند.

CBW
دستور (convert byte to word) cbw محتوای بيت شماره هفت ثبات AL را در AX بسط می دهد. يعنی بيت شماره هفت ثبات AL را در کليه بيت های ثبات AH کپی می کند. درنتيجه مقدار رياضی بايت AL به يک کلمهAX گسترش پيدا می کند.

دستور هيچ عملوندی ندارد:

کد:
cbw
دستور cbw روی هيچيک از فلگ ها تاثير ندارد.

دستور cbw در محاسبه تقسيم يک بايتی کاربرد دارد.

CWD
دستور (convert word to double word) cwd محتوای بيت شماره پانزده ثبات AX را در کليه بيت های ثبات DX کپی می کند. درنتيجه مقدار رياضی AX به يک کلمه مضاعف در DX:AX گسترش پيدا می کند.

دستور هيچ عملوندی ندارد:

کد:
cwd
دستور cbw روی هيچيک از فلگ ها تاثير ندارد.

دستور cbw در عمليات تقسيم دوبايتی نقش بازی می کند.

مثال. برای گسترش مقدار 8 بيتی AL به يک مقدار 32 بيتی در DX:AX دو دستور پشت سر هم نوشته می شوند.
کد:
mov AL,85h
cbw
cwd
چون بيت علامت عدد 85h يک است تبديل به عدد FFFFFF85h می شود که 16بيت پايين آن در ثبات AX و 16بيت بالای آن در ثبات DX قرار می گيرد. يعنی AX=FF85h و DX=FFFFh می شود.

Assembly Language 039

۲۹-اردیبهشت-۱۳۸۹, ۰۱:۳۳:۳۲
ارسال‌ها
پاسخ
تشکر شده توسط : Admiral


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question دستورات ضرب و تقسیم The.Ghost 0 1,757 ۱۶-فروردین-۱۳۹۱, ۰۶:۰۱:۲۳
آخرین ارسال: The.Ghost
Question دستورات اسمبلی The.Ghost 0 2,525 ۱۶-فروردین-۱۳۹۱, ۰۵:۴۹:۰۷
آخرین ارسال: The.Ghost
Question دستورات جمع و تفريق Admiral 1 4,895 ۲۶-اردیبهشت-۱۳۸۹, ۱۵:۱۳:۲۲
آخرین ارسال: The.Ghost
Question دستورات چرخشی Admiral 2 4,696 ۲۱-اردیبهشت-۱۳۸۹, ۱۴:۵۰:۰۸
آخرین ارسال: The.Ghost

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS