سلام من برنامه ضرب دوعدد 16بیتی به زبان اسمبلی 8051 را می خواهم... لطفا من را راهنمایی کنید؟ با تشکر فراوان
اطلاعیه
Collapse
No announcement yet.
برنامه ضرب دوعدد16بیتی در اسمبلی
Collapse
X
-
پاسخ : برنامه ضرب دوعدد16بیتی در اسمبلی
نوشته اصلی توسط s_gh6747سلام من برنامه ضرب دوعدد 16بیتی به زبان اسمبلی 8051 را می خواهم... لطفا من را راهنمایی کنید؟ با تشکر فراوان
من خودم همیشه از این الگوریتم استفاده می کنم.
ضرب دو عدد 8 بیتی رو که میکرو انجام میده. پس از همین کمک می گیریم.
فرض کنید که هر حرف یک عدد 8 بیتی است.
عدد اول A:B
عدد دوم C
حاصل ضرب E:F:G:H
MUL D,B
حاصل را در T2:T1 ذخیره می کنیم.
MUL D,A
حاصل را در T4:T3 ذخیره می کنیم.T2 را با T3 جمع می کنیم و در T3 می ریزیم. و T4 را با Carry جمع می کنیم و در T4 ذخیره می کنیم. پس داریم T4:T3:T1
MUL C,B
حاصل را در T6:T5 ذخیره می کنیم.
MUL C,A
حاصل را در T8:T7 ذخیره می کنیم. .T6 را با T7 جمع می کنیم و در T7 می ریزیم. و T8 را با Carry جمع می کنیم و در T8 ذخیره می کنیم. پس داریم T8:T7:T5
حالا دو عدد زیر رو باید با هم جمع کنیم که خیلی ساده است.
T4:T3:T1
+T8:T7:T5:00
--------------------
E:F:G:H
دیدگاه