PDA

View Full Version : مشکل در چاپ عدد



alasht
یک شنبه 14 خرداد 1391, 19:48 عصر
با سلام خدمت دوستان
من یه برنامه نوشتم که دو عدد بهش میدم بعدد با هم جمع میکنم و در خروجی چاپ میکنم
فرض کنید من دو عدد 25+2 رو با هم جمع کردم
حالا باید عدد 27 در خروجی نشون داده بشه
اما کارکتری که کد اسکلیش 27 هست رو چاپ میکنه
هر چی هم سرچ کردم نفهمیدم مشکل کجاست
من از این ماکرو برای چاپ رشته استفاده میکنم

ECHOSTR MACRO STR
MOV DX,OFFSET STR
MOV AH,09H
INT 21H
ENDM

ممنون میشم دوستان یه کد یا راه حل ساده بدن برای حل این مشکل
با تشکر

MostafaMohammadi
یک شنبه 14 خرداد 1391, 20:37 عصر
عددی که می خوای چاپ کنی رو به صورت متوالی بر 10 تقسیم کن و هر بار باقیمانده تقسیم رو در یک رشته یا در سگمنت استک نگهدار، این کار رو تا زمانی که خارج قسمت تقسیم ات صفر بشه ادامه بده. بعد از اینکه خارج قسمت ات صفر شد کافیه برگردی اون اعدادی رو که ذخیره کردی چاپ کنی. راستی یادت باشه یه شمارشگر بزاری که بفهمی چند بار تقسیم کردی تا خارج قسمت ات صفر بشه. اینطوری موقع چاپ کردن راحتی.

alasht
یک شنبه 14 خرداد 1391, 21:12 عصر
میشه بگید بعدش باید با چه دستوری چاپش کنم ؟

MostafaMohammadi
دوشنبه 15 خرداد 1391, 01:33 صبح
MOV DL, NUMBER
رقم ها رو دونه دونه از جایی که ذخیره کردی بخون و داخل ثبات DL بریز



ADD DL, '0'
محتویات ثبات DL رو با کد اسکی صفر جمع کن تا به کد اسکی اون عدد تبدیل بشه، مثلا اگه داخل ثبات DL مقدار عددی 5 قرار داده باشی، وقتی این مقدار عددی رو با کد اسکی صفر جمع کنی تبدیل میشه به کد اسکی کاراکتر 5



MOV AH, 2h
INT 21h
سرویس 2h از وقفه 21h رو اجرا کن.

حالا رقم مورد نظر ات چاپ شده برو سراغ رقم بعدی.

ssbostan
دوشنبه 15 خرداد 1391, 10:48 صبح
با سلام؛
دوست عزيز قبل از پست دادن جستجو كنيد. در اين مورد قبلا صحبت شده.!!!

http://barnamenevis.org/showthread.php?342116-Help

موفق باشيد.