نمایش نتایج 1 تا 6 از 6

نام تاپیک: کد ماشین تولید شده برای دو نوع شرط متفاوت !

  1. #1

    Tick کد ماشین تولید شده برای دو نوع شرط متفاوت !

    با سلام
    به کدهای زیر دقت کنید ! :
    1.
    if  A = B then D := True else D := False;

    2.
    D := ( A = B );


    فرض کنید D یک متغیر Boolean و A و B دو متغیر یکسان باشند ...
    دو کد بالا هر دو یک وظیفه رو انجام می دن ، یعنی مساوی بودن دو مقدار A و B مقدار D رو True میکنه و مساوی نبودنشون مقدار D رو False می کنه ...

    حالا سئوال اینه که کامپایلر دلفی این دو خط کد رو به چه دستوری در زبان ماشین تبدیل میکنه ، یعنی وقتی برنامه کامپایل میشه این دو دستور به چه دستوری ترجمه می شن ، آیا دقیقا مثل هم هستن یا اینکه رفتار کامپایلر با اونها متفاوت هست ؟

    شاید اینجا جای مناسبی برای سئوالم نباشه ، اما چون مربوط به کامپایلر دلفی و کد به زبان دلفی بود اینجا مطرح کردم ...

    اگه دوستان راهنمایی کنن ممنون میشم ...

    با تشکر ...

  2. #2

    نقل قول: کد ماشین تولید شده برای دو نوع شرط متفاوت !

    D := ( A = B );
    اینو خبر نداشتم ازش . پرانتز یه عملگر جدیده ؟
    به نظرم اون دومیه فقط یه عمل انتسابه؛شرط نیست
    تو دلفی هم هیچ قسمتی برای دیدن کد اسمبلی دستورات اجرا نشده نداره ولی تو VS داره می تونی از اونجا تست کنی .

  3. #3

    نقل قول: کد ماشین تولید شده برای دو نوع شرط متفاوت !

    حالا سئوال اینه که کامپایلر دلفی این دو خط کد رو به چه دستوری در زبان ماشین تبدیل میکنه ، یعنی وقتی برنامه کامپایل میشه این دو دستور به چه دستوری ترجمه می شن ، آیا دقیقا مثل هم هستن یا اینکه رفتار کامپایلر با اونها متفاوت هست ؟
    برای عبارت اول:
    AB.gif

    برای عبارت دوم:
    D.gif


    اینو خبر نداشتم ازش . پرانتز یه عملگر جدیده ؟
    ربطی به پرانتز نداره.عبارت A=B یک عبارت بولی هست، نتیجه اش هم یا True هست یا False، پس میتونه به D که یک متغیر Boolean هست، اختصاص پیدا کنه.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  4. #4

    نقل قول: کد ماشین تولید شده برای دو نوع شرط متفاوت !

    ممنون جناب کشاورز ، با عکسی که گذاشتید نحوه فهمیدنش رو هم پیدا کردم ...

    موفق و پیروز باشید ...

  5. #5

    نقل قول: کد ماشین تولید شده برای دو نوع شرط متفاوت !

    نحوه فهمیدنش رو هم پیدا کردم
    بی زحمت اگه برای دلفی 2007 هم صادقه ذکر کنید . چون من پیداش نکردم
    با تشکر.

  6. #6

    نقل قول: کد ماشین تولید شده برای دو نوع شرط متفاوت !

    بی زحمت اگه برای دلفی 2007 هم صادقه ذکر کنید . چون من پیداش نکردم
    با تشکر.
    باید روی خط مورد نظرتون توی کد یک Break Point بزارید بعد برنامه رو درمحیط دلفی اجرا کنید وقتی به Break Point رسیدید از منوی View و بعد Debug Windows ، گزینه CPU رو انتخاب کنید ، پنجره ای باز میشه که کد ماشین برنامتون رو نشون می ده ...
    البته این برای دلفی 7 بود ، در دلفی 2007 هم این گزینه ها وجود دارند اما شاید جاشون تغییر کرده باشه ، کمی گزینه ها رو نگاه کنید پیدا می کنید ...

    موفق باشید ...

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •