View Full Version : حرفه ای: نوشتن کامپایلر برای اسمبلی
salma abtin
جمعه 31 خرداد 1392, 15:26 عصر
سلام دوستان
میخوام برنامه نویسی یه کامپایلر برای زبان اسمبلی رو درمحیط جاوا شروع کنم
یه سری اطلاعات دارم
مثلا این که به جای ثبات ها از int استفاده کنم و...(هر ثبات رو با یک اینتیجر نشون بدم)
اگه قبلا همچین چیزی نوشتید خوشحال میشم کمکم کنید و تجاربتونو در اختیارم قرار بدید
کامپایلر من قراره کد رو بگیره و بعد از هر خط ثبات هار آپدیت کنه
کد رو اجرا کنه و حافظه رو به صورت گرافیکی نشون بده
با تشکر
tdkhakpur
جمعه 31 خرداد 1392, 16:03 عصر
خب واسه چی تو این تالار سوال کردید بهتر بود تو همون تالار جاوا سوال میکردید.
قدرت جاوا میتونه به شما توی ساختن مفسر کلمات به کد کمک کنه؟
salma abtin
جمعه 31 خرداد 1392, 19:38 عصر
خب واسه چی تو این تالار سوال کردید بهتر بود تو همون تالار جاوا سوال میکردید.
قدرت جاوا میتونه به شما توی ساختن مفسر کلمات به کد کمک کنه؟
خوب ممکنه افرادی که جاوا بلدن اسمبلی بلد نباشن
منظورتون اینه که به جای جاوا با سی شارپ بنویسم مثلا؟
چون با جاوا ومحیط گرافیکیش آشنا هستم جاوارو انتخاب کردم
اگه پیشنهاد وراهنمایی دارید برای من بسیار ممنون میشم دریغ نکنید
tdkhakpur
جمعه 31 خرداد 1392, 20:12 عصر
منظورتون اینه که به جای جاوا با سی شارپ بنویسم مثلا؟
اگه پیشنهاد وراهنمایی دارید برای من بسیار ممنون میشم دریغ نکنید
منظورم اینه که جاوا میتونه اینتراپتها و یا بطور کلی کدهای سطح پایین تولید کنه و بفرسته واسه اجرا؟
این کامپایلری رو که در نظر دارید بنویسید همه کلیدها و کدهای اسمبلی رو میخاد تفسیر و کامپایل کنه یا دو سه نمونه رو؟
خوب ممکنه افرادی که جاوا بلدن اسمبلی بلد نباشن
اما به نظرم بازم سوال رو اونجا بپرسی بهتره چون پلتفرمی رو که میخای کار کنی جاواست بنابر این اساتید اونجا میدونن که جاوا چه میزان میتونه به سخت افزار و یا کلا به سطوح پایین کامپیوتر نزدیک بشه.
m.j_banitaba
جمعه 31 خرداد 1392, 20:27 عصر
فکر کنم منظور شما یک شبیه ساز اجرا است؟ نه کامپایلر. چیزی شبیه emu8086؟
salma abtin
جمعه 31 خرداد 1392, 20:30 عصر
منظورم اینه که جاوا میتونه اینتراپتها و یا بطور کلی کدهای سطح پایین تولید کنه و بفرسته واسه اجرا؟
این کامپایلری رو که در نظر دارید بنویسید همه کلیدها و کدهای اسمبلی رو میخاد تفسیر و کامپایل کنه یا دو سه نمونه رو؟
اما به نظرم بازم سوال رو اونجا بپرسی بهتره چون پلتفرمی رو که میخای کار کنی جاواست بنابر این اساتید اونجا میدونن که جاوا چه میزان میتونه به سخت افزار و یا کلا به سطوح پایین کامپیوتر نزدیک بشه.
تعداد کدهای محدودی رو میخواد تفسیر کنه
کدهای ساده ای مثل جمع کردن دو تا ثبات
اینتراپت ها هم مهم نیستن زیاد برام در ابتدا
چشم
توی تالار جاواهم مطرح میکنم که به نتیجه بهتری برسم
ممنون
salma abtin
جمعه 31 خرداد 1392, 20:45 عصر
فکر کنم منظور شما یک شبیه ساز اجرا است؟ نه کامپایلر. چیزی شبیه emu8086؟
بله
درست میگید
خوب اونم نوعی کامپایله
ولی حرفتون درسته
ممنون بابت تذکر
tdkhakpur
جمعه 31 خرداد 1392, 20:47 عصر
کدهای ساده ای مثل جمع کردن دو تا ثبات
اینتراپت ها هم مهم نیستن زیاد برام در ابتدا
خب اگه این شکلیه که خیلی آسونه اما من که میتونم راهنمایی کنم جاوا رو خیلی وقته کار نمیکنم.
همونطور که اشاره کردید اگه رجیسترهای اضافی eax , ebx , ... رو در نظر نگیرید ثباتها رو باید توی int جا بدید بنابر این این مراحل رو طی کن.
1 - اول از همه یک پروسه یا تابع بنویس که درستی یا نادرستی جمله ها رو چک کنه مثلا بدونه املای add و دو رجیستر دیگه رو که بعد از اون میاد درست نوشته شده.
2- تو این مرحله که با درستی مرحله یک اومدی نوع کلمه اول add یا sub رو چک کن هر کدوم باشه محتوای دو کلمه بعدی رو با هم جمع و یا تفرق کن و نتیجه رو تو کلمه اولی قرار بده
3 - نتیجه رو نشون بده.
UfnCod3r
جمعه 31 خرداد 1392, 21:04 عصر
این ک گفتی میشه شبیه ساز :متفکر:
در هر صورتم با زبانی مثل جاوا کار خوبی نیست
سی یا سی++ مناسبه
زیاد کار سختی نیست فقط کافیه خط ب خط دستوراتو بخونی بعدصحتشونو بررسی کنی و کد رو تولید کنی
salma abtin
شنبه 01 تیر 1392, 00:49 صبح
این ک گفتی میشه شبیه ساز :متفکر:
در هر صورتم با زبانی مثل جاوا کار خوبی نیست
سی یا سی++ مناسبه
زیاد کار سختی نیست فقط کافیه خط ب خط دستوراتو بخونی بعدصحتشونو بررسی کنی و کد رو تولید کنی
چرا سی یا سی پلاس پلاس و نه جاوا؟
به نظرم جاوا بهتر میاد
هم گرافیک بهتری داره هم کتابخونه های بیشتری و سطح بالاتره .از پایه نوشتنه همه چیز هدفم نیست
راستش هنوز شروع نکردم به کد زدن
طرحای اولیه تو ذهنمه
از طولانی شدن بیش از حد برنامه میترسم
خواستم درباره توابعی که احتمالاکد رو بهینه میکنه اگه اطلاعی دارید برام بگید
darknes666
شنبه 01 تیر 1392, 10:34 صبح
حرف آقای __UFNHGGI_H__ درسته. بهتره با سی یا سی پلاس پلاس نوشته بشه.
به گرافیک و کتابخونه نیست.به قدرت زبان و نزدیک بودن اون به اسمبلی بستگی داره.
برای مثال خود اسمبلی گرافیک داره؟
نه.اما قدرتش از همه ی زبان های برنامه نویسی کاربردی مثل سی پلاس پلاس و جاوا و پیتون و .... بیشتره.
درضمن مگه هرچی سطح بالاتر باشه بهتره؟
سرعت اجرای برنامه های نوشته شده با c# رو با c++ مقایسه کنین.اصلا خیلی فرق داره.
ویژگی یه برنامه ی خوب هم طولانی بودنه اونه(البته نه در همه جا) و در اکثر موارد نرم افزار های کاربردی از تعداد زیادی کد تشکیل شده.
برای مثال من کد های لینوکس رو مثال میزنم.درسته خیلی زیاده ولی وقتی مستندات داره میشه اطلاعات خیلی خیلی مفیدی ازشون کسب کرد.
به نظر من اول برنامه رو تکمیل کنین بعدش باگ ها و اشکالاتش رو برطرف کنین.از اول هم بخواییم به فکر باگ و هم کد نویسی باشیم یه جورایی باعث میشه آدم بیشتر گیر کنه و بیشتر طول بکشه البته این نظر منه و خود شرکت های بزرگ هم اول محصول مورد نظر رو تموم میکنن بعد باگ هاشو درست میکنن البته این به این منظور نیست که در هنگام نوشتن برنامه به باگ فکر نمیکنن.فکر میکنن اما کم تر.
سی و سی پلاس پلاس هم چون به اسمبلی خیلی نزدیک تر از بقیه ی زبان ها هست بهتره کار با اون انجام بشه.
salma abtin
دوشنبه 10 تیر 1392, 12:01 عصر
با c++ نوشتم
البته اصلا کامل نیست و برای کامپیوتر پایه نوشتمش که ثباتای کمتری داره و اینتراپت نداره
ممنون از راهنماییاتون
:)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.