ورود

View Full Version : سوال: مشکل در جواب پایانی



hessam2003
یک شنبه 09 تیر 1392, 11:47 صبح
سلام.
برنامه ای با اسمبلی نوشتم که اصولا درسته اما جواب پایانی اشتباه میشه.
هدف برنامه به این صورت است که عبارت زیر را به طور مثال از کاربر دریافت نماید:
8%2*8%4+2%2
%=عمل تقسیم را انجام میدهد.
من برنامه رو نوشتم اما جواب اخر که در متغییر temp ذخیره میشود اشتباه است!
فکر میکنم خطهای 32و33 و 113و114 با یکدیگر تداخل دارند.
در این خطها این کد اجرا میشود
lea si,array
lea di,array1
اگه یک نگاهی به برنامه بندازید و مشکلشو بهم بگید ممنون میشم.
لینک برنامه: finaly.asm - 5 KB (http://www.uploadbaz.com/goaw8watvn2f)

hessam2003
یک شنبه 09 تیر 1392, 13:17 عصر
کسی نیست کمک کنه؟!

_macro_
شنبه 05 مرداد 1392, 22:20 عصر
سلام دوست عزيز.
من معني 1 كار شما رو متوجه نميشم:
اونم استفاده از دستور CBW هست... حالا فرض ميكنيم اين قسمت مشكلي بوجود نياره.
خط 71 و 72 دو دستور زير استفاده شده:
mov ax,aa
div bb
زماني كه operand شما word باشه كه همينطور هم هست(bb dw ?) مقدار خارج قسمت تو AX هست نه AL و همينطور مقسوم كه بايد DX AX باشه كه در اينجا نمي توان از مقدار DX صرف نظر كرد چون در خطوط بالاتر DX مقدار گرفته و بنابراين در نتيجه تقسيم تاثير ميگذاره.

operand = word
::
AX = (DX AX) / operand
DX = remainder

اميدوارم مشكلش حل بشه... متاسفانه خطايابي كد هاي زبان ماشين به مراتب سخت تر از نمونه هاي ديگه هست و تا در جريان الگوريتم كار قرار نگيري كار سخت و زمان بر ميشه مشكل رو رديابي كرد...