PDA

View Full Version : جمع دو عدد 50 رقمی



Ali_Fallah
جمعه 19 خرداد 1391, 18:33 عصر
با سلام :خجالت:
جمع دو عدد پنجاه رقمی در اسمبلی چگونه است؟ (روش)
1- صفحه نمایش پاک شود
2- تعیین محل کرسر (مثلا در وسط صفحه)
3- نمایش پیغام عدد را وارد کنید و ذخیره اعداد در آرایه List1
4- نمایش پیغام عدد بعدی را وارد کنید و ذخیره اعداد در آرایه List2
5- محاسبه جمع و نمایش جواب

با تشکر فلاح

حق یارتان

MostafaMohammadi
جمعه 19 خرداد 1391, 19:31 عصر
با سلام :خجالت:
جمع دو عدد پنجاه رقمی در اسمبلی چگونه است؟ (روش)
یه حلقه بنویس که اعداد رو دونه دونه از آخر به اول، از تو آرایه های List1 و List2 بخونه، با همدیگه جمع شون کنه و نتیجه جمع رو Stack ذخیره کنه، بعلاوه اگه عملیات جمع Carry Flag داشت، نتیجه عملیات جمع دو خونه بعدی رو با عدد یک جمع کنه. در انتها اعداد رو دونه دونه از Stack بازیابی کن و چاپ کن.

1- صفحه نمایش پاک شود

MOV AH, 07h
MOV AL, 00h
MOV BH, 07h
MOV CX, 0000h
MOV DX, 184Fh
INT 10h

2- تعیین محل کرسر (مثلا در وسط صفحه)
این تکه کد، مکان نما رو می بره خط 10، ستون 5. کافیه اعداد 10 و 5 رو به خون شماره خط و ستونی که می خوای تغییر بدی.

MOV AH, 2h
MOV BH, 00h
MOV DH, 10
MOV Dl, 5
INT 10h

3- نمایش پیغام عدد را وارد کنید و ذخیره اعداد در آرایه List1
در سگمنت داده پیغام رو تعریف کن

MSG1 DB 'Please enter a number: ', '$'
در سگمت کد هر جا خواستی پیغام رو چاپ کنی از کد زیر استفاده کن:

MOV AH, 09h
LEA DX, MSG1
INT 21h
برای گرفتن عدد هم در ابتدای سگمنت داده یک بافر با طول 50 کاراکتر تعریف کن و در برنامه با استفاده از کد زیر می تونی از کاربر عدد 50 رقمی رو بگیری:

MOV AH, 0Ah
LEA DX, BUFFER
INT 21h

4- نمایش پیغام عدد بعدی را وارد کنید و ذخیره اعداد در آرایه List2
همون کارهایی که برای 3 گفتم رو برای این هم انجام بده.

5- محاسبه جمع و نمایش جواب
نحوه محاسبه کردن اش رو که قبلا گفتم، فقط برای ذخیره کردن توی پشته و بازیابی از پشته باید از دستور زیر استفاده کنی:

POP DX
محتویات ثبات DX رو در آخرین خونه حافظه استک ذخیره می کنه

PUSH DX
محتویات آخرین خونه حافظه استک رو در ثبات DX ذخیره می کنه.
نکته: به جای DX از هر ثبات 16 بیتی دیگه ای هم می تونی استفاده کنی.
برای چاپ اش هم که از همون سرویس و وقفه ای که برای چاپ کاراکتر استفاده می کنیم، استفاده کن.