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

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




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

نام تاپيک: راهنمای اسمبلر

  1. #1
    آخر فروم باز
    تاريخ عضويت
    Jul 2009
    پست ها
    6,351

    پيش فرض راهنمای اسمبلر

    درود
    متاسفانه جای دیگری برای پرسید ن سوال پیدا نشد
    من یک مقاله ای خودنم و میگه برخی دستوران در زبان اسمبلی به زبان ماشین تبدیل نمیشوند و اونها صرفا به عنوان راهنما اسمبلر عمل میکنند
    مثلا برجسب TEST برای من قابل فهمیدن هست و برای سخت افزار نیست. پس هر کاری میکنه و هر عملی انجام میده باید به زبان ماشین یعنی 01 تبدیل بشه تا سخت افزار بفهمه.

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

  2. #2
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    نه فقط در اسمبلر بلکه در تمامی کامپایلرها در هر زبانی که می خواهید حساب کنید این قضیه وجود دارد. یکسری فرمان، ماکرو، تابع، دستور و ... وجود دارند که از پیش برای کامپایلر تعریف شده اند. در واقع با آن ها با کامپایلر صحبت می کنید نه اینکه در برنامه قرار گیرند و در اختیار Linker قرار گیرند تا تبدیل به فایل خروجی شوند.
    در خانواده C این ارتباط با کامپایلرها عموما با واژگان آغاز شونده # می باشند.نظیر #ifdef.
    در برخی کامپایلرهای سخت افزار محور نظیر میکروکنترلر ها حتی آدرس بندی هم وجود دارد مثلا فلان تابع برود در فلان نقطه ی حافظه.
    یا در همین نوع کامپایلرها مثلا @ در عبارات به معنای قرار گیری در نقطه ای خاص با آدرس دهی مستقیم است.
    عموما کامپایلرها راهنما هایی دارند که فقط به شرح موارد ارتباط با کامپایلرها می پردازند.
    ارتباط با لینکر ها نیز وجود دارد که اکثرا توسط parameter در خط فرمان ساخت لینک ایجاد می شود.

    موفق باشید.

  3. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


  4. #3
    آخر فروم باز
    تاريخ عضويت
    Jul 2009
    پست ها
    6,351

    پيش فرض

    نه فقط در اسمبلر بلکه در تمامی کامپایلرها در هر زبانی که می خواهید حساب کنید این قضیه وجود دارد. یکسری فرمان، ماکرو، تابع، دستور و ... وجود دارند که از پیش برای کامپایلر تعریف شده اند. در واقع با آن ها با کامپایلر صحبت می کنید نه اینکه در برنامه قرار گیرند و در اختیار Linker قرار گیرند تا تبدیل به فایل خروجی شوند.
    در خانواده C این ارتباط با کامپایلرها عموما با واژگان آغاز شونده # می باشند.نظیر #ifdef.
    در برخی کامپایلرهای سخت افزار محور نظیر میکروکنترلر ها حتی آدرس بندی هم وجود دارد مثلا فلان تابع برود در فلان نقطه ی حافظه.
    یا در همین نوع کامپایلرها مثلا @ در عبارات به معنای قرار گیری در نقطه ای خاص با آدرس دهی مستقیم است.
    عموما کامپایلرها راهنما هایی دارند که فقط به شرح موارد ارتباط با کامپایلرها می پردازند.
    ارتباط با لینکر ها نیز وجود دارد که اکثرا توسط parameter در خط فرمان ساخت لینک ایجاد می شود.

    موفق باشید.
    درست می فرمائید.
    مثلا کلمه کلیدی for که در کامپایلر پیاده شده است . به زبان اسمبلی و سپس زبان ماشین ترجمه نمیشه؟
    خوب ما میدونیم for چیه و کامپایلر - بلاخره نیاز به پرداش داره در CPU . نداره؟

  5. #4
    پروفشنال akpa's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    خونمون
    پست ها
    876

    پيش فرض

    درست می فرمائید.
    مثلا کلمه کلیدی for که در کامپایلر پیاده شده است . به زبان اسمبلی و سپس زبان ماشین ترجمه نمیشه؟
    خوب ما میدونیم for چیه و کامپایلر - بلاخره نیاز به پرداش داره در CPU . نداره؟
    حلقه نیاز به ترجمه و پردازش داره و جزو اون دسته از دستورات قرار نمیگیره
    مثلا ماکرو define که یه ثابت رو تعیین میکنه این دستور پیش از کامپایل مقدار که به ثابت نسبت دادیم رو به جای نام ثابت مینویسه وسپس کامپایلر شروع به ترجمه میکنه
    همچنین در اسمبلر اسمبل کردن دستورات در دو مرحله انجام میشه مرحله اول جای گذاری آدرس ها به جای متغییر ها و ...(که اون دستوراتی که به زبان ماشین ترجمه نمیشن در همین مرحله پردازش میشن)
    و در مرحله دوم کدها تبدیل به زبان ماشین میشن

  6. #5
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    همان مثال for شما، یک حلقه، یک شمارش گر و یک بررسی کننده ی شرط. خوب این for تقریبا معادل چند خط کد ساده در اسمبلی می شود.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اصلا ویژگی زبان های سطح بالاتر در همین است یعنی یک واسطی که نگارش های دستوری اصلی را تبدیل به کد ماشین کند حالا در همین راستا هم یکسری فرمان برای ارتباط با خود این واسط نیز وجود دارد.

    موفق باشید.

Thread Information

Users Browsing this Thread

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

User Tag List

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

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