اطلاعیه

Collapse
No announcement yet.

سوالاتی ابتدایی از یک برنامه به زبان اسمبلی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوالاتی ابتدایی از یک برنامه به زبان اسمبلی

    با سلام خدمت همه دوستان

    برای یادگیری این بحث شیرین و زیبا دارم سعی میکنم یه برنامه که به زبان اسمبلی برای پردازنده ی t89c51cc01 نوشته شده رو برای خودم تفسیر کنم.

    از اونجا که توی اسمبلی تازه کارم، خیلی از قسمت هاشو متوجه نمیشم و خواستم از شما کمک بگیرم.

    اگر که کمکی می کنید ، ممنون :rolleyes:

    این کد قسمت های اول اون برنامه است که سوالات زیادی رو برای ایجاد کرده:
    کد:
    $INCLUDE(t89c51cc01.inc)
    ;============================================================================
    LINETO MACRO linenum   
        IF (linenum=1)
        mov A,#80h
        ENDIF
        IF (linenum=2)
        mov A,#0C0h
        ENDIF
        IF (linenum=3)
        mov A,#094h
        ENDIF
        IF (linenum=4)
        mov A,#0D4h
        ENDIF
        lcall COMX
        ENDM
    ;============================================================================
    خب ، سوالاتم

    این include برای تعریفه پردازنده است؟؟ کلمه ی کلیدیه اسمبلیه؟؟ برای چی اومده؟

    خط
    کد:
    LINETO MACRO linenum
    داره چیکار میکنه؟ کدوم اینا کلمه ی کلیدی زبان اسمبلی اند؟ یه جور شروع تعریف تابع یا همچین چیزیه؟

    کد:
    lcall COMX
    این چیه و چیکار میکنه؟؟


    توضیحات فوق العاده ساده یا فوق العاده حرفه ای همش قبولن، ممنون
    عزممو جزم کردم که یادش بگیرم :read:

    ممنون ازتون، اگه منبع خوبی هم دارید که توی 4share اپلود نشده ، لطفا دریغ نکنید

    ممنون از همتون

    مهرداد


    کسی چه می داند، شاید "یاسین" همان "یا حسین" است که بی سر شده.
    علامه طباطبایی

    لطفا برای ظهور اقا دعا کنید ،ممنون

    #2
    پاسخ : سوالاتی ابتدایی از یک برنامه به زبان اسمبلی

    این برنامه رو از کجا آوردید؟ اسمبلری که این کد براش نوشته شده چیه؟ من با اسمبلر اینتل و Heinz کار کردم. توی اونها Include لازم نبود. در ضمن من با ماکرو ها کار نکردم. اصلاً نمیدونم اسمبلر هایی که من باهاشون کار میکردم امکان ماکرونویسی داشتن یا نه!
    نوشته اصلی توسط red fox
    این include برای تعریفه پردازنده است؟؟ کلمه ی کلیدیه اسمبلیه؟؟ برای چی اومده؟
    درسته برای تعریف آیسی هست. ولی کلمه کلیدی زبان اسمبلی 8051 استاندارد اینتل نیست.
    مختص اسمبلری است که این کد براش نوشته شده.

    خط
    کد:
    LINETO MACRO linenum
    داره چیکار میکنه؟ کدوم اینا کلمه ی کلیدی زبان اسمبلی اند؟ یه جور شروع تعریف تابع یا همچین چیزیه؟
    هیچ کدوم به اسمبلی ربط نداره. این خط برای تعریف یک ماکرو هست که باز مختص اسمبلر شماست.
    در مورد ماکرو ها در برنامه نویسی جستجو کنید.
    خلاصش این میشه که مارو از نوشتن تکراری یک تکه کد راحت میکنه. با تابع فرق میکنه ولی میشه گفت یهجورایی کارش شبیه تابعه.
    در اینجا اسم ماکرو LINETO هست که یک پارامتر بنام linenum میگیره و با توجه به اون یک مقداری رو میریزه تو A (همون اکومولاتور).

    کد:
    lcall COMX
    این چیه و چیکار میکنه؟؟
    این دیگه اسمبلی خالص هست. :mrgreen:. سابروتین COMX رو فراخوانی میکنه.

    ممنون ازتون، اگه منبع خوبی هم دارید که توی 4share اپلود نشده ، لطفا دریغ نکنید
    مشکلت با 4Shared چیه؟
    من منابع خوبی توش پلود کردم که تو تاپیک چسبونکی بالای بخش میتونید ببینید.
    لینکهاشم از هفت سال پیش تا حالا سالمه. (همین الان تست کردم)
    مشکلت با 4Shared چیه هان؟ لعنتی!

    دیدگاه

    لطفا صبر کنید...
    X