تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 15

نام تاپيک: تقسيم يك عدد64 بيي به عدد 32 بيتي به زبان اسمبلي (فوري)

  1. #1
    پروفشنال aroosak_kooki's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    تهران
    پست ها
    644

    9 تقسيم يك عدد64 بيي به عدد 32 بيتي به زبان اسمبلي (فوري)

    سلام

    ممنون ميشم از دوستان اگر برنامه ي تقسيم يك عدد64 بيي به عدد 32 بيتي به زبان اسمبلي رو برام بنويسند ...

    واگر ميشه :
    تفريق دو عدد 32 بيتي رو هم برام بنويسيد ...

    خيلي خيلي ممنون ميشم

  2. #2
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    برای تقسیم از ترکیب EDX:EAX به عنوان عدد 64 بیتی استفاده کن و عدد 32 بیتی ثبات یا یک آدرس حافظه میتونه باشه بعد با دستورات DIV و IDIV تقسیم کن
    بعد تقسیم EDX باقی مانده و EAX خارج قسمت هست
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    تفریق رو هم با دستور SUB انجام بده و عدد 32 بیتیت میتونه ثبات های 32 بیتی EAX, EBX, ECX, EDX, ... یا یه آدرس حافظه باشه
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  3. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  4. #3
    در آغاز فعالیت skylarker's Avatar
    تاريخ عضويت
    Oct 2008
    محل سكونت
    Ir-Msh
    پست ها
    19

    پيش فرض 64/32

    ای بابا
    مثلا" اومدیم یه چیزی حالیمون باشه ،دیدیم نیست اونطورا
    شرمنده فکر کردم ازین آسون تر باشه
    درسمون هنوز به اونجا نرسیده خب
    اما این چیزی که این بنده خدا گفته هم میتونه درست باشه
    اما خب یه چیزی برات پیدا کردم که یه جورایی به درد بخوره البته بقیه اش با خودته
    You cannot synthesize a general n-bit/m-bit division operation using the div and idiv instructions. Such an operation must be performed using a sequence of shift and subtract instructions. Such an operation is extremely messy. A less general operation, dividing an n bit quantity by a 32 bit (on the 80386 or later) or 16 bit quantity is easily synthesized using the div instruction. The following code demonstrates how to divide a 64 bit quantity by a 16 bit divisor, producing a 64 bit quotient and a 16 bit remainder:
    dseg segment para public 'DATA'dividend dword 0FFFFFFFFh, 12345678hdivisor word 16Quotient dword 0,0Modulo word 0dseg endscseg segment para public 'CODE' assume cs:cseg, ds:dseg; Divide a 64 bit quantity by a 16 bit quantityivide64 proc near mov ax, word ptr dividend+6 sub dx, dx div divisor mov word ptr Quotient+6, ax mov ax, word ptr dividend+4 div divisor mov word ptr Quotient+4, ax mov ax, word ptr dividend+2 div divisor mov word ptr Quotient+2, ax mov ax, word ptr dividend div divisor mov word ptr Quotient, ax mov Modulo, dx retDivide64 endpcseg endsThis code can be extended to any number of bits by simply adding additional mov / div / mov instructions at the beginning of the sequence. Of course, on the 80386 and later processors you can divide by a 32 bit value by using edx and eax in the above sequence (with a few other appropriate adjustments).
    این هم آدرس اون سایت هستش

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    on the 80386 and later processors you can divide by a 32 bit value by using edx and eax in the above sequence توی این خط توضیح داده که برای تقسیم 64 به 32 باید جای ax,dx از eax,edx استفاده کنی همون
    چیزی که اون بنده خدا گفته بود
    نقل قول اولی خوب از آب در نیومد یه سر به آدرس سایت بزنی بهتر مفهومه
    خب دیگه ...موفق باشی
    در آغوش خدا

  5. این کاربر از skylarker بخاطر این مطلب مفید تشکر کرده است


  6. #4
    در آغاز فعالیت skylarker's Avatar
    تاريخ عضويت
    Oct 2008
    محل سكونت
    Ir-Msh
    پست ها
    19

    پيش فرض

    این لینک هم یه سری توضیحات برای تفریق توی فایلی که داده داره(فایل پی پی تی)که میتونه بدردت بخوره
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  7. این کاربر از skylarker بخاطر این مطلب مفید تشکر کرده است


  8. #5
    پروفشنال aroosak_kooki's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    تهران
    پست ها
    644

    پيش فرض

    ممنونم از همگی ...
    مرسی بیدل جان ..

    فقط یه چیزی من از EAX مه استفاده میکنم این خطا رو میده که تعریف نشده
    Symbol not defined: EAX
    چرا؟ این که دیگه تعریف نمیخواد!!!!!

  9. #6
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    این دستورو اول کدت اضافه کن درست میشه، اگه نشد به جای اینکه اول کد بزاری قبل دستورایی که تو پست قبل دادم بزار
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  10. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  11. #7
    اگه نباشه جاش خالی می مونه Shahab_H's Avatar
    تاريخ عضويت
    Nov 2008
    محل سكونت
    Tehran
    پست ها
    482

    پيش فرض

    وای من از اسمبلی متنفرم!
    استادمونم که ماشالا فکر کرده داره c#درس میده انقد برنامه های سنگینی میده که بعضی وقتا کل هفته رو براش می ذاریم آخرم تموم نمیشه!
    نمره دادنشم که تعطیل همرو میندازه!

  12. #8
    پروفشنال aroosak_kooki's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    تهران
    پست ها
    644

    4

    این دستورو اول کدت اضافه کن درست میشه، اگه نشد به جای اینکه اول کد بزاری قبل دستورایی که تو پست قبل دادم بزار
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    منونم
    شم امتحانش ميكنم حتما" ...
    البته امروز از استادمون پرسيدم كه چرا ميگه تعريف نشده ...گفت چون امبلرتون 64 بيت رو نمخونه تا 32 بيته !!!!

    منم گفتم ..به به ...خسته نباشيد

    تازه استاد گفته listing رو هم برام بفزستيد !!!
    با EAX كه نميشه ...كلي error داره آخرش !!!

    وای من از اسمبلی متنفرم!
    استادمونم که ماشالا فکر کرده داره c#درس میده انقد برنامه های سنگینی میده که بعضی وقتا کل هفته رو براش می ذاریم آخرم تموم نمیشه!
    نمره دادنشم که تعطیل همرو میندازه!
    موافقم كاملا"
    استاد ما هم همينطوره ..

    همه مي دونيم كه آخرش ميافتيم !!!!

  13. #9
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    چه ارروری میده؟ الان اینو ببین با masm614 کامپایل شده، همون کدی که بالا دادمه، البته چیزی به خروجی نمی فرسته ولی بدون مشکل کامپایل میشه
    من فرض گرفتن که برنامه که می خوای بسازی 16 بیتی وگر در 32 بیتی از این جور مشکلا نداری
     
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
     
    --------------------------
    وای من از اسمبلی متنفرم!
    استادمونم که ماشالا فکر کرده داره c#درس میده انقد برنامه های سنگینی میده که بعضی وقتا کل هفته رو براش می ذاریم آخرم تموم نمیشه!
    نمره دادنشم که تعطیل همرو میندازه!
     
    هر کسی دیگه همچین استادایی بهش می دادن از اسمبلی متنفر میشد.
    ولی برعکس من حاظرم هیچ کلاسی نرم فقط سر کلاسهای اسمبلی بشینم
    ولی حیف که تا حالا کلاس اسمبلی نداشتم

  14. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  15. #10
    در آغاز فعالیت skylarker's Avatar
    تاريخ عضويت
    Oct 2008
    محل سكونت
    Ir-Msh
    پست ها
    19

    پيش فرض

    سلام عزیز جان
    خوبی؟
    مرسی بیدل جان ..
    کاری نکردم و قابلی نداشت فقط امیدوارم که نتیجه ای حاصل شده باشه برات
    دل تنگ گفتگوتم
    مواظب خودتون باشید
    سلام برسون
    در آغوش خدا باشی...

  16. این کاربر از skylarker بخاطر این مطلب مفید تشکر کرده است


صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •