کمک-اسمبلر مانو

a.aktichi

عضو جدید
سلام.من چند تا درخواست داشتم اما کسی جواب نداد.
کسی میتونه منو در درست کردن اسمبلر برای سی پی یو مانو کمک کنه.به زبان سی یا سی پلاس پلاس باشه.
 

A.S.Roma

عضو جدید
کاربر ممتاز
چیزی که شما می خواهید ظاهرش سخت به نظر میاد اما منطق ساده ای داره .
شما باید یک String Parser بنویسید که بتونه دستورات اسمبلی ( مانو ) رو تفکیک کنه . یه Search کوچیک در مورد اسمبلر تک گذر و چندگذر هم بزن بهت خیلی کمک می کنه . و بعد از تفیکیک هر دستور رو به Opcode نظیر خودش ترجمه کنه . کلیتش همینه بعلاوه یکسری ریزه کاری.
 

a.aktichi

عضو جدید
چیزی که شما می خواهید ظاهرش سخت به نظر میاد اما منطق ساده ای داره .
شما باید یک String Parser بنویسید که بتونه دستورات اسمبلی ( مانو ) رو تفکیک کنه . یه Search کوچیک در مورد اسمبلر تک گذر و چندگذر هم بزن بهت خیلی کمک می کنه . و بعد از تفیکیک هر دستور رو به Opcode نظیر خودش ترجمه کنه . کلیتش همینه بعلاوه یکسری ریزه کاری.
میشه بیشتر توضیح بدین.اون چیزایی که شما گفتین رو سرچ کردم چیز خاصی به دست نیاوردم
 

A.S.Roma

عضو جدید
کاربر ممتاز
اصولا در معماری کامپیوتر ما یک اصطلاح به نام Operation Code داریم . که شامل دستورالعمل و پارامترهای دستور هست که طول این کد با Instruction Register پردازنده باید یکی باشه .
از طرفی یک سری دستورات سطح بالا به زبان اسمبلی داریم که برای cpu نامفهومه و بایستی به opcode ها ترجمه بشه تا قابل استفاده بشه.

شما باید یک mapTable بسازید که opcode معادل هر دستور رو داشته باشه.
حالا برنامه اسمبلی رو دریافت می کنید ( به صورت string‌) . ابتدا کامنتها رو حذف می کنید. سپس باید یک Table دیگه بسازید که حاوی lable های احتمالی برنامه باشه . کار این جدول map کردن Label ها با آدرس واقعی دربرنامه هست تا در صورت مواجه شدن با دستورات پرشی مثل jmp برنامه عملکرد درستی داشته باشه .
 
بالا