سلام چجوری میشه دستورات زبان اسمبلی را به کد ماشین تبدیل کرد؟
یعنی یه برنامه به زبان اسمبلی داریمبتونیم تبدیل کنیم به کد ماشین!!
سلام چجوری میشه دستورات زبان اسمبلی را به کد ماشین تبدیل کرد؟
یعنی یه برنامه به زبان اسمبلی داریمبتونیم تبدیل کنیم به کد ماشین!!
تا اونجایی که من میدونم فایل .obj که اسمبلرهای TASM و MASM درست میکنن حاوی همون کد ماشین دستورات اسمبلی هست.حالا چطور باید از این کد ماشینی که اسمبلر ترجمه کرده فایل تکست ساخت رو جایی نشنیدم.برنامه ی خاصی هم ندیدم که این کارو کنه!!!
هر سطر دستور اسمبلي معادل يك دستور ماشين هست
كه بعضي از دستورات از روي كد دستورالعملها به كد هگز تبديل ميشه و بعضي با كد دستورالعملها+دو جدول كد ماشين دستور العمل و كدگذاري آدرس موثر
در مورد دستور inc كه شما نوشتين معادل هگز اون در 80286 كه اين نميباشد!(پيام خصوصي بوده)
inc از FE تا FF استفاده ميشه كه با كمك همون دو جدول بدست مياد!
حالا شما هم بسته به نوع پردازنده اي كه دارين كد دستورالعملشو بايد داشته باشين و به همين شكل شاخته ميشه چون معادل هم هستند آسون هست بعضي هم با كمك دو جدول ديگه چون بعضي دستورات كد يكسان دارند با كمك اين تفاوت براي پردازنده آشكار ميشه
با سلام.
اون طوری که من می دونم هر دستور اسمبلی برای یک ماشین دارای یک آپکد (opcode) هست مخفف ( operation code )، هر آپکد ساختار خاص خودشو داره.
حالا فرض کنید ماشینی که آپکد هاش مثلا چهار بیتی اند، آپکد شماره 5 که برای دستور خاصی هست ساختارش به این صورته که چند بیت مشخص بعدی برای به عملوند از نوع ثبات هست و چند بیت بعدی برای نشان دادن عملوندی از نوع عدد ثابت.
دستوری مثل دستور mov که عملونداش به چند طریق می توننن باشن چندین آپکد داره که هر کدوم برای یه نوع یه کار می ره.
اگه یه جدول کامل در مورد دستورات یه ماشین رو داشته باشید حتما آپکد هر دستور رو هم براش نوشته.
موفق باشید.
این pdf میتونه کمکت کنه
مثال هم داره ولی برای یک برنامه که معمولا در اسملی تعداد دستورهای زیادی داره فکر کنم همون obj file بهتر باشه
http://www.4shared.com/office/1xdHV9...ode-Singl.html
اگر pdf مورد نظر از آدرس بالا برداشته شده بود به من ایمیل بزن
دوست عزیز این تاپیک یک سال قبل ایجاد شده و مقاله شما نافص میباشد اما برای درک موضوع بد نیست
قبلا بخشی از اسمبلر رو نوشتم که همین کارو انجام میده از این قسمت میتونید ببنید
موفق باشی