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

نام تاپیک: حقیقت پیش پردازنده ها و فایل های سرآیند

  1. #1
    کاربر جدید آواتار makhdoosh
    تاریخ عضویت
    تیر 1389
    محل زندگی
    گلستان
    سن
    32
    پست
    29

    حقیقت پیش پردازنده ها و فایل های سرآیند

    خوندم، که دستورات پیش پردازنده ایی وجود دارد در C که مترجمی هست که با مشاهده دستوراتی که با # شروع میشه اجرا میشود و آنها را به دستورات زبان C تبدیل می کند.

    و همچنین تابع هایی که در C استفاده میشوند در فایل هایی به نام سرآیند هستند که باید توسط پیش پردازنده به برنامه اضافه شوند.
    مثلا تابع Printf که در فایل سرآیند stdio.h قرار دارد.
    حالا سوال بنده اینجاست؛ آیا پیش پردازنده یا بهتره بگم فایل سرآیند که مثلا محتوی تابع Printf هست خود به زبان C هست یا نه در پشت پرده یه سری عملیات سیستمی انجام میشه.
    در واقع آیا تابع Printf معادل دستورات مستقیم C داره؟
    مثلا آیا کار پیش پردازنده اینه که بعدا تابع ها رو در سورس برنامه تعریف کنه (همونطور که خود ما میتونیم یک تابع رو خارج از تابع ()main تعریف کنیم)
    یعنی آیا سر آخر تابع printf در سورس برنامه نوشته شده اضافه میشه در کنار توابع دیگه ایی که خودمون تعریف کردیم؟

    یا سوالم رو کلی تر بپرسم؛ آیا بنده میتونم بی نیاز از توابع موجود در سرآیندها خودم اقدام به نوشتن و تعریف آن توابع با دستورات (غیر تابعی) C کنم.
    مثلا خودم دستور printf رو در قالب یک تابع جدا در کد برنامه بنویسم و تعریف کنم؟

    اگر بله، چه دستوراتی (غیر از توابع) در C هست که میتونه با خروجی صفحه نمایش ارتباط بر قرار کنه؟
    حدس خودم: نوشتن مستقیم متغییر ها در حافظه نمایشی؟

    همچنین اگه جواب مثبت هست، لطفا میشه سورس دستور Printf رو اینجا قرار بدید؟

  2. #2
    کاربر دائمی آواتار khafan_bat
    تاریخ عضویت
    دی 1387
    محل زندگی
    منظومه ی شمسی-کره زمین-قاره ی آسیا-ایران-گیلان-لاهیجان
    سن
    32
    پست
    111

    نقل قول: حقیقت پیش پردازنده ها و فایل های سرآیند


  3. #3
    کاربر جدید آواتار makhdoosh
    تاریخ عضویت
    تیر 1389
    محل زندگی
    گلستان
    سن
    32
    پست
    29

    نقل قول: حقیقت پیش پردازنده ها و فایل های سرآیند

    بی زحمت یه توضیحی هم در مورد لینک بدید.

  4. #4

    نقل قول: حقیقت پیش پردازنده ها و فایل های سرآیند

    سلام

    دوست من کمی بیشتر در این مورد فکر کن
    همونظور که گفتم باید از توابع سیستم عامل استفده کنید یا از Inline Assembly استفاده کنید.
    ایا منظور از توابع سیستمی api هستش در هر صورت چه c Runtime library یا توایع ای مثل WriteConsole باشه بازم از system call استفاد می کنه

    توی header فقط declaration توابع هستش و Implementation توابع داخل msvcrxxx.dll هستش (برای ران تایم لایبرری )

    و برای اینکه از صفر یه تابع برای چاپ روی مانیتور بنویسید باید توی ring0 کد بزنید ( استفاده از توابع سیستمی و inline assembly هم ربط به این سوال نداره )
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  5. #5

    نقل قول: حقیقت پیش پردازنده ها و فایل های سرآیند

    نقل قول نوشته شده توسط Negative_Se7en مشاهده تاپیک
    اشتباه متوجه شدید.
    چون که سوال این بود :

    آیا دستوری در C هست که با صفحه نمایش ارتباط برقرار کنه (غیر از توابع) ؟ نه نیست. ولی با اسمبلی میشیه.

    لطفا بیشتر دقت کنید.
    دوست من چه با توابع C چه با api ویندوز تو (یعنی این توابع) از system call استفاده می کنن

    و تو نمی تونی با اسمیلی این کار(یعنی از صفر یه تابع بنویسی که با مانیتور در ارتباط باشه ) رو بکنی چون تو محیط protected mode وقتی تو رینگ 3 هستی نمی تونی به سخت افزار دست رسی داشته باشی و نمی تونی از Interrupt استفاده کنی حالا اگه قبول نداری خوب برنامه شو بنویس
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  6. #6

    نقل قول: حقیقت پیش پردازنده ها و فایل های سرآیند

    اصلا: می دونی چیه

    آیا دستوری در C هست که با صفحه نمایش ارتباط برقرار کنه (غیر از توابع) ؟ نه نیست. ولی با اسمبلی میشیه.
    keyword . تابع . اسمبلی

    خود زبان سی Keywork خواصی برای ارتباط با سخت افزار نداره (با توابع کاری ندارم)
    اخه من نمی فهمم بین keyword و توابع چه ربطی هست که داری مقایسه می کنی

    یه بار دیگه این ها رو مرور کن


    http://en.wikipedia.org/wiki/Keyword...r_programming)

    http://en.wikipedia.org/wiki/Functio...puter_science)

    http://en.wikipedia.org/wiki/Opcode برای اسمبلی که بهش گیر دادی و هی داری با تابع و کیورد مقایسه می کنی


    اصلا فرض کن شما تو ring0 دازی کد میزنی ، بدون هیچی ، اون وقت با C میخوای چی کار کنی ؟
    native api


    پی نوشت:
    اصلا" سوال طرف چی بود چی شد، بی خیال
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  7. #7

    نقل قول: حقیقت پیش پردازنده ها و فایل های سرآیند

    سلام دوست عزیز لطفا عبارت versions of "hello, world" in x86/x86-64 assembly language (and C)

    سرچ کنید

    https://montcs.bloomu.edu/~bobmon/Co...ello-asms.html




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

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