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

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




نمايش نتايج 1 به 9 از 9

نام تاپيک: نوشتن يك اسمبلر به زبان c

  1. #1
    اگه نباشه جاش خالی می مونه bahareh655's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    بالای نَوَردِوون-نزدیک پُشت بون
    پست ها
    266

    پيش فرض نوشتن يك اسمبلر به زبان c

    سلام
    می خواستم بدونم كس‍ی تجربه نوشتن اسمبلر كامپيوتر پايه (توی معماری كامپيوتر) يا كامپيوتر با معماری Mips رو به زبون ++c داره؟
    البته شايد فكر كنيد بهتر بود اين تاپيك رو تو بخش سخت افزار و مباحث مربوط به معماری كامپيوتر مطرح می كردم ولی دليل اين كارم اينه كه اين اسمبلر بايد به زبون ++c نوشته بشه و قصدم استفاده از تجارب استادان بزرگ C ، توی اين بخشه.
    لذا از مديران محترم اين بخش می خوام عنايات خودشونو در جهت عدم انتقال اين تاپيك به انجمن های ديگه مبذول بدارن!

  2. #2
    اگه نباشه جاش خالی می مونه bahareh655's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    بالای نَوَردِوون-نزدیک پُشت بون
    پست ها
    266

    پيش فرض درخواست مجدد نوشتن يه اسمبلر به زبان c

    اگه سوال تا حدودی حجيم و سخت به نظر ميرسه،خواهشا بگين حداقل در مورد نوشتن يه اسمبلر به زبان c برای شروع چی كار بايد كرد؟

  3. #3
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    سلام!
    شما میخواین یه Interpreter به زبان ++C بنویسین که دستورالعمل های Assembly رو به زبان ماشین
    تبدیل کنه؟ خب! مقداری در مورد معماری کامپوتر پایه ای که طراحی کردین توضیح بدین.
    دستور العمل ها چند بیتی هستند؟ برای کدوم دستورالعمل ها؟ و ....
    سوالتون سخت نیست اما خیلی کلی پرسیده شده.
    بیشتر توضیح بدین.

  4. #4
    اگه نباشه جاش خالی می مونه bahareh655's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    بالای نَوَردِوون-نزدیک پُشت بون
    پست ها
    266

    پيش فرض

    سلام
    با تشكر از someone
    مشخصات كلی معماری كامپيوتر پايه در فصل 5 كتاب معماری كامپيوتر(نوشته موريس مانو) تشريح شده(من طراحی اش نكردم!)
    همين طور در مورد معماری MIPS كه ويژگی دستورالعمل ها،رجيسترهاو ... اون گفته شده (توی كتاب "رويكرد كمی به معماری كامپيوتر" نوشته هنسی پترسون)
    درخواست من از شما بيشتر جنبه برنامه نويسی اسمبلر به زبان ++C هست
    يعنی می خوام بدونم برای شروع كار اصلا نياز به چه هدر ها و چه نوع توابع كتابخانه ای دارم و چی كار بايد بكنم؟!
    اصلا كاری به جنبه معماری اش ندارم چيزی كه مد نظرمه اينه كه از معلومات شما برای شروع كار استفاده كنم
    و اينكه اگه تجربه نوشتن يه اسمبلر( يا هر مفسری) رو داشتين چه جوری شروع به كار كردين؟
    اميدوارم منظورم رو رسونده باشم
    ممنونم

  5. #5
    در آغاز فعالیت
    تاريخ عضويت
    May 2009
    پست ها
    4

    پيش فرض

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

  6. #6
    داره خودمونی میشه DaneshD's Avatar
    تاريخ عضويت
    May 2009
    محل سكونت
    Sweden
    پست ها
    196

    پيش فرض

    سلام
    با تشكر از someone
    مشخصات كلی معماری كامپيوتر پايه در فصل 5 كتاب معماری كامپيوتر(نوشته موريس مانو) تشريح شده(من طراحی اش نكردم!)
    همين طور در مورد معماری MIPS كه ويژگی دستورالعمل ها،رجيسترهاو ... اون گفته شده (توی كتاب "رويكرد كمی به معماری كامپيوتر" نوشته هنسی پترسون)
    درخواست من از شما بيشتر جنبه برنامه نويسی اسمبلر به زبان ++C هست
    يعنی می خوام بدونم برای شروع كار اصلا نياز به چه هدر ها و چه نوع توابع كتابخانه ای دارم و چی كار بايد بكنم؟!
    اصلا كاری به جنبه معماری اش ندارم چيزی كه مد نظرمه اينه كه از معلومات شما برای شروع كار استفاده كنم
    و اينكه اگه تجربه نوشتن يه اسمبلر( يا هر مفسری) رو داشتين چه جوری شروع به كار كردين؟
    اميدوارم منظورم رو رسونده باشم
    ممنونم
    اگر منظور شما تبدیل کد نوشته شده به زبان اسمبلی به کد زبان ماشین قابل اجرا بر روی یک پردازنده خاص و احتمالا ساده هست در واقع همون نوشتن Code Generator در درس کامپایلر هست که ابتدا کد سطح بالای زبان برنامه نویسی به کد یا شبه کد اسمبلی توسط Scanner یا Parser تبدیل میشه بعد ای کد تبدیل به کد زبان ماشی میشه که شما مرحله آخر رو احتیاج دارید. برای اینکار باید کد رو Scan کنید که خط به خط خوندن ساده در زبان C هست که حتما بلدید. بعد هر خط رو به کلمه ها یا همون Token ها تبدیل کنید. دستورهای مثل mov ax, 10 که قرار دادن constant در رجیستر یا mov bx, cx که قرار دادن رجیستر در رجیستر هست خیلی ساده هست و حتما کد اونها در note های همون پردازنده یا کتاب اومده. صدا کردن interrupt ها هم به همین ترتیب ساده هست و همینطور برای logical operator ها مثل دستورهای and, or, xor و push و pop. بخش حساس و مشکل function call ها یا فراخوانی توابعی هست که نوشته شده که برنامه شما باید آدرس function رو دری جدول حفظ کنه و Instruction Pointer رو در stack قیل از فراخوانی push کنه و بعد از فراخوانی pop کنه. یعنی به ازای هر function call برنامه شما باید چندین instruction معادل در فایل اجرایی قرار بده. همینطور برای متغیرهایی که برنامه نویس تعریف کرده که شما باید یک Lookup Table درست کنید که نام متغیرها و آدرس معادل رو در اون قرار بده و هرجا از اون متغیراستفاده شده بود به جای اون آدرسش رو قرار بده. فایلی که برنامه شما تولید میکنه هم باید از نوع binary با پسوند com باشه.

  7. #7
    داره خودمونی میشه DaneshD's Avatar
    تاريخ عضويت
    May 2009
    محل سكونت
    Sweden
    پست ها
    196

    پيش فرض

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

  8. #8
    در آغاز فعالیت
    تاريخ عضويت
    May 2009
    پست ها
    4

    پيش فرض

    شما هم باید همون کاری رو بکنید که بهاره میکنه.

    امکانش هست که شما برنامه ای که توضیحشو دادید اینجا قرار بدید؟
    این برنامه ای که توضیح داید خروجیش کار اسمبلر رو میکنه؟
    برنامه ای که خروجیش تبدیل کامپایلر به اسمبلر هسه رو اینجا میزارید؟

  9. #9
    داره خودمونی میشه DaneshD's Avatar
    تاريخ عضويت
    May 2009
    محل سكونت
    Sweden
    پست ها
    196

    پيش فرض

    امکانش هست که شما برنامه ای که توضیحشو دادید اینجا قرار بدید؟
    این برنامه ای که توضیح داید خروجیش کار اسمبلر رو میکنه؟
    برنامه ای که خروجیش تبدیل کامپایلر به اسمبلر هسه رو اینجا میزارید؟
    نه متاسفانه امکانش نیست چون اینکار تقلب هست و باعث میشه که شما چیزی یاد نگیرید.

    این برنامه ای که من گفتم خروجی اش یک فایل .com قابل اجرا هست. فایلهای .com مانند فایلهای .exe اجرایی هستند با این تفاوت که سایز اونها نمیتونه از 65k بیبشتر باشه و فاقد header هم هستند.

    چیزی که شما میخواهید فکر کنم Parser یا Scanner هست که کد کامپیایلر رو اسکن کنه و کد معادل اسمبلی اونرو تولید کنه که حتی ساده تر هم هست.

Thread Information

Users Browsing this Thread

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

User Tag List

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

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