ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 9 از 9
  1. #1
    2011/11/25
    دزفول
    162
    8

    ضرب وجمع در اسمبلي

    با سلام
    من با كامپايلر pic basic poroكار ميكنم يه مشكل بسيار اساسي كه داره اين كامپايلر تا اعداد16 بيتي(65535)بيشتر نميگيره و در بيشتر پروژه هام نياز به ضرب و تقسيم اعدادخيلي بزرگتر ازاين رو دارم
    تو اين كامپايلر ميشه دستور اسمبلي هم نوشت حالا من ميخوام 1-تعريف متغير چند بايتي تو اسمبلي 2-ضرب دوعدددر اسمبلي3-تقسيم 2عدد دراسمبلي رو ياد بگيرم
    خواهش ميكنم اگه كسي بلده اطلاعاتشو در اختيار ما هم قرار بده

    ضمنا ميدونم كه اين كامپايلر بده و قديميه و ....اتفاقا من سي هم بلدم ولي پروژه هامن طورين كه بايد با اين كامپايلر نوشته بشن
    اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...
  2. #2
    2006/08/16
    867
    17

    پاسخ : ضرب وجمع در اسمبلي

    پیاده سازی ریاضیات 16 بیتی(و بیشتر) با اسمبلی وحشتناک پیچیده میشه. کردم که میگم!
    شما برو سراغ سی.
    موفق و موید باشی

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  3. #3
    2010/04/10
    593
    7

    پاسخ : ضرب وجمع در اسمبلي

    من فکر میکنم شما اشتباه میکنید که متغیر بزرگتر از 16 بیت نداره.
    این لینک رو نگاه کن :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    این عبارت رو توش سرچ بزن "BASIC LANGUAGE DATA TYPES"
    یه جدول میاد که توش longword , longint, float رو نوشته.
    پس این جدول چی میگه ؟؟؟؟
    انسان موفق با آجرهایی که به سمتش پرتاب میشود بنایی مستحکم میسازد.
  4. #4
    2011/11/25
    دزفول
    162
    8

    پاسخ : ضرب وجمع در اسمبلي

    نقل قول نوشته اصلی توسط freedom_truth
    پیاده سازی ریاضیات 16 بیتی(و بیشتر) با اسمبلی وحشتناک پیچیده میشه. کردم که میگم!
    شما برو سراغ سی.
    موفق و موید باشی
    اتفاقا من خوراكم كار بااين "بيت"و"بايت"هه.م ن رشتم كامپيوتره ومشكلي ندارم با بيت و بايت چون به خوبي ميفهممشون
    اگه ميشه يه توصييح كوچلو بدين راجب تغير متغير تو اسمبلي
    مرسي
    اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...
  5. #5
    2006/08/16
    867
    17

    پاسخ : ضرب وجمع در اسمبلي

    من با picbasic کار نکردم ولی نکته ای که امیر.م گفت بنظر منطقی میاد.
    بررسی کن اگر درسته دیگه مشکلی نداری.

    در مورد اسمبلی هم من فقط در مورد الگوریتمش صحبت کردم وگرنه در مورد اسمبلی pic و نوشتن اون توی picbasic اطلاعی ندارم.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  6. #6
    2006/08/16
    867
    17

    پاسخ : ضرب وجمع در اسمبلي

    الان اون لینکی که امیرجان داده بودن بررسی کردم که دو نوع longint و longword طولشون 32 بیت هست.
    یکی signed و اون یکی unsigned.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  7. #7
    2009/10/21
    تهران
    2,517
    218

    پاسخ : ضرب وجمع در اسمبلي

    فقط جهت راهنمایی اگه بی ربط بود ببخشید:
    من AVR با زبون سی کار میکنم. وقتی این کامپایلر کد رو کامپایل میکنه ؛ کد اسمبلی تولید میکنه و بعد با اسمبلر کد هگز میده. موقع شبیه سازی با AVR studio شما کاملا متوجه هستی که کدوم کدهای هگز برای کدوم خطوط از برنامت داره اجرا میشه و به این طریق مثلا یه برنامه ساده مینویسی (نوشتم)که توش دو تا مثلا long int با هم ضرب یا تقسیم بشن بعد دنبال میکنی ببینی چه ماکرویی داره براش اجرا میشه.
    برای PIC هم احتمالا بتونی این روش رو دنبال کنی (کپی پیست وخلاص)
  8. #8
    2011/11/25
    دزفول
    162
    8

    پاسخ : ضرب وجمع در اسمبلي

    نقل قول نوشته اصلی توسط امیر . م
    من فکر میکنم شما اشتباه میکنید که متغیر بزرگتر از 16 بیت نداره.
    این لینک رو نگاه کن :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    این عبارت رو توش سرچ بزن "BASIC LANGUAGE DATA TYPES"
    یه جدول میاد که توش longword , longint, float رو نوشته.
    پس این جدول چی میگه ؟؟؟؟
    نداره فقط سه نوع متغير داره(بيت وبايت و وردword)
    helpش رو هم چك كردم فقط از اين سه نوع متغير نام برده...
    اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...
  9. #9
    2013/01/24
    109
    11

    پاسخ : ضرب وجمع در اسمبلي

    سلام دوست عزیز
    برای اینکه بدونی چطوری به متغیر اسمی رو اختصاص بدی یه برنامه نمونه گذاشتم واست که ابتدای برنامه با EQU این کار انجام شده
    برای اینکه بدونی چه خونه هایی از اس رم در اختیارته برای نامگذاری متغیر ها به دیتاشیت میکروت مراجعه کن همون 30-40 صفحه اول یه جدول bank register میبینی که از ادرس 0x20 در بانک صفر در اختیار شماست و بانک یک و ...
    میتونی بجای اینکه نامی رو به متغیر اختصاص بدی مستقیما از ادرسش استفاده کنی
    MOVWF 0X20
    مقدار WREG رو میریزه تو Fileregister خونه 0x20
    من یه تابع دارم که تقسیم 32 بیتی بدون علامت هست، یه تابع هم ضرب 16*16 بیتی بدون علامت، این برنامه هایی بودند که برای AVR نوشته شده بودند اما من موهای سرم سفید شد تا به PIC تبدیلش کردم. شما میتونی از اینا استفاده کنی
    اما ممکنه به مشکلی بخوری، مثلا تو برنامه بیسیک دو متغیر یک بایتی داری، فرض کامپایلر اومده 0x20,0x21 رو انتخاب کرده، اگر شما ندونی و با 0x20 محاسبات اسمبلی انجام بدی مقدار متغیرت رو از دست میدی ، یا اینکه اگر خونه 0x30 رو استفاده میکنی و تداخلی تو برنامه اسمبلی و بیسیک نداری، اینکه چطور به کامپایلر بیسیک حالی کنی که برو خونه 0x30 رو مثلا با متغیری به نام i جمع کن؟
    بهرحال این مشکلات با خودت

    اما توصیه میکنم کاری کن که نه BCD هست نه char چیزی بین این دو ، فرض شما دو متغیر داری بنام i,j ، با این دوتا اعداد 0-9999 رو میتونی داشته باشی ، اما بی سی دی استفاده نکن که هر نیبل رو برای یک رقم اختصاص بدی، بیا همون مقدار باینریشو در نظر بگیر معادل 99 ، که میشه 63 هگز، یعنی اگر متغیر j بایت کم ارزش باشه و متغیر i بایت با ارزش باشه، شما بخوای یه کانتر داشته باشی، متغیر j رو یکی یکی اضافه میکنی و اگر 0x64 شد صفرش میکنی و i رو یکی اضافه میکنی، دردسر این کار از بی سی دی کمتره چون بی سی دی با هر بار اضافه کردن باید تصحیحش کنی ، میدونیم بی سی دی چهار پنج نوع خطا داره که با دستور DAW یا decimal adjust Wreg تو pic18 به بالا یا DA در 8051 ها این خطا تصحیح میشه، البته این روش برای تقسیم و ضرب دنگ و فنگ داره و فقط جمع و تفریق راحته باهاش

    تابع تقسیم 32 بیتی و ضرب 16 بیتی
    http://s1.picofile.com/file/7881286555/ASM_Div32.zip.html

    نمونه
    http://s1.picofile.com/file/7881291177/0_9999_COUNTER.zip.html
    فایل با نام g رو باز کنید

    Good Luck
نمایش نتایج: از 1 به 9 از 9

موضوعات مشابه

  1. اسمبلي ARM
    توسط ra1372 در انجمن پروسسورهای ARM
    پاسخ: 1
    آخرين نوشته: 2014/06/08, 00:03
  2. مشکل با اسمبلي
    توسط ameen.kh در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2014/04/25, 09:16
  3. نوشتن کد اسمبلي در C18
    توسط AliTabaie در انجمن میکروکنترلرهای PIC
    پاسخ: 1
    آخرين نوشته: 2013/07/26, 11:26
  4. يادگيري اسمبلي
    توسط reza13731 در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2013/03/18, 06:34
  5. mmc به زبان اسمبلي
    توسط soheyl_60 در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2012/12/10, 18:19

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •