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

نام تاپیک: آموزش برنامه نویسی به زبان اسمبلی به صورت گام به گام

  1. #1

    Thumbs up آموزش برنامه نویسی به زبان اسمبلی به صورت گام به گام

    توجه:

    فعلا تاپیک در حال ایجاد است لطفا تا تکمیل مراحل اولیه ایجاد تاپیک از ارسال هرگونه پستی خودداری نمایید.


    اگر از بین دوستان و اساتید کسانی علاقمند به شرکت و پیشبرد موضوع تاپیک بودند می توانند با پیام خصوصی با بنده در ارتباط باشند.


    هر گونه اشتباه یا غیر علمی بودن مطالب رو در صورت مشاهده به من گزارش بدید.
    آخرین ویرایش به وسیله JaVa : سه شنبه 12 اردیبهشت 1391 در 23:37 عصر

  2. #2

    Lightbulb نقل قول: آموزش برنامه نویسی به زبان اسمبلی به صورت گام به گام

    مقدمه:

    هدف از ایجاد این تایپیک آموزش اولیه و متوسط زبان برنامه نویسی اسمبلی به مبتدیان و دوست داران این زبان برنامه نویسی می باشد. و روال کار هم به این صورت می باشد که در ابتدا به معرفی این زبان برنامه نویسی می پردازیم. و همچنین نگاهی کوتاه به معایب و مزایا این زبان برنامه نویسی هم می کنیم.

    سپس به قالب کلی دستورات اسمبلی و به معرفی عملوند های حافظه ، دستور MOV ، وقفه ها ،ساختارات دستوری و ماکروها هم می پردازیم همراه با مثال...
    و همچنین تمام برنامه نوشته شده برای پردازنده اینتل 8086 نوشته می شوند.
    همچنین این رو هم بگم که شاید بعضی از موضوعات رو از سایر تایپیک ها همرا با لینک آن تایپیک هم مورد استفاده قرار بگیره.

    هدف اصلی من هم آموزش است.
    آخرین ویرایش به وسیله JaVa : چهارشنبه 13 اردیبهشت 1391 در 20:22 عصر

  3. #3
    آخرین ویرایش به وسیله JaVa : شنبه 27 خرداد 1391 در 19:30 عصر

  4. #4

    نقل قول: آموزش برنامه نویسی به زبان اسمبلی به صورت گام به گام

    کاربرانی که به همکاری من در ساختن این تایپیک به من کمک کردن:

    تشکر می کنم از xman_1365_x برای توضیحاتی که به من فرمودند.
    آخرین ویرایش به وسیله JaVa : چهارشنبه 13 اردیبهشت 1391 در 20:27 عصر

  5. #5

    نقل قول: آموزش برنامه نویسی به زبان اسمبلی به صورت گام به گام

    پرسش و پاسخ:
    (پرسش هایی که از طریق پیغام خصوصی دریافت می شوند در صورت نیاز در این قسمت مطرح و پاسخ داده خواهند شد.)

    اگه دوستان بخوان که اطلاعات کاملی در مورد پروسسور 8086 بدست بیارند می تونند به این سایت یه نگاهی بندازند.
    آخرین ویرایش به وسیله JaVa : شنبه 16 اردیبهشت 1391 در 22:33 عصر

  6. #6

    نقل قول: آموزش برنامه نویسی به زبان اسمبلی به صورت گام به گام

    درباره زبان برنامه نویسی اسمبلی :
    زبان همگذاری یا اَسمبلی (به انگلیسی: Assembly) به مجموعه زبان‌های برنامه‌نویسی سطح پایینی اطلاق می‌شود که در آن مستقیماً دستورالعمل‌های پردازندهٔ اصلی (CPU) نوشته می‌شود ( یعنی دستوراتی که ALU توانایی انجام آنها را دارد.)

    به دلیل سطح پایین بودن این زبان‌ها، نوشتن، اشکال‌زدایی و نگهداری برنامه سخت‌تر است. برای هر خانوادۀ CPU یک زبان اسمبلی وجود دارد.

    این زبان به زبان مادر کامپیوتر بسیار نزدیک می‌باشد به‌طوری که تمامی برنامه‌های اولیه همچون ++C توسط زبان اسمبلی ساخته شده است و همچنین اکثر کارها در زمینۀ هک و مانند آن با این زبان انجام می‌شود. در زبان اسمبلی هر دستور زبان متناظر یک دستور باینری است. این زبان را با استفاده از اسمبلر‌ها می‌توان به زبان ماشین یعنی صفر و یک تبدیل کرد. نرم‌افزارهای اسمبلر بر روی سیستم نصب شده و با وارد کردن کدهای اسمبلی و اشکال‌زدایی کردن آن می‌توان آن‌ها را به زبان ماشین تبدیل کرد.

    اسمبلر
    اسمبلر یا همگذار نرم افزاری است که برنامه نوشته شده به زبان اسمبلی را به کد ماشین تبدیل می کند و یک فایل با پسوند obj تولید می کند. توجه شود که این فایل قابل اجرا نیست و بوسیله نرم افزار Linker این فایل به یک فایل با پسوند exe تبدیل می شود که این فایل جدید قابل اجرا است.

    اسمبلر های معروف:

    مایکروسافت اسمبلر
    توربو اسمبلر
    اَسِمبلی 64 بیتی 32 بیتی و 16 بیتی

    کامپیوتر های امروزی دارای ثبات 32 بیتی که می توان بصورت 8 بیتی مانند AL,AHو... و یا بصورت 16 بیتی مانند AX,BXو...و یا بصورت 32 بیتی مانند EAX,EBX,ECX,EDXو... استفاده نمودهمچنین ثبات های BP,SP,DI,SI نیز به شکل 32 بیتی EBP,ESP,EDI,ESI قابل استفاده اند.ثبات های ES,SS,DS,CS
    16 بیتی هستند.

    نکته: زبان اسمبلی را به دو صورت می توان پیاده سازی کرد یکی از طریق برنامه doc و دیگری با برنامه emu که این برنامه تحت ویندوز می باشد و به صورت گرافیکی شما می توانید با این برنامه کار کنید.
    منبع : دانشنامه آزاد ویکی پدیا

    از مزایا مهم زبان اسمبلی:
    1- استفاده کامل از امکانات سخت افزاری
    2- کاهش حجم برنامه ها
    3- سرعت بالای اجرای برنامه ها
    از معایب مهم زبا اسمبلی:
    1-برنامه نویس باید ازاطلاعات کاملی در مورد معماری کامپیوتر و پروسسورها داشته باشد.
    آخرین ویرایش به وسیله JaVa : چهارشنبه 13 اردیبهشت 1391 در 20:47 عصر

  7. #7

    نقل قول: آموزش برنامه نویسی به زبان اسمبلی به صورت گام به گام

    با عرض سلام و خسته نباشید و ....
    موضوع این پست: ریجیسترها،انواع ریجیسترها،ثبات های سگمنت، ثبات های اشاره گر، ثبات های ایندکس.

    ریجسترها: ریجیسترها حافظه ی کوچک و محدود در CPUمی باشدکه مستقیما با واحدهای ALU و CU در ارتباط است. خاصیت ویژه ریجیسترها سرعت بالا همچنین قابلیت آدرس دهی با نام است بدلیل آنکه دستیابی به ریجیسترها برای CPU سریعتر از انواع حافظه دیگر می باشد دستوراتی که فقط از ریجیسترها استفاده میکنند بسیار سریعتر از دستوراتی اجرا می شوند که عملوندهای آن قرار است از حافظه منتقل شوند.

    ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــــــــــــ
    ریجیسترهای عمومیAX,BX,CX,DX
    ریجسترهای سگمنت CS,DS,SS,ES
    ریجسترهای ایندکس SP,BP,SI,DI
    ریجیسترهای وضعیت کنترلیFR,IP
    ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــــــ

    رجیسترهای عمومی عبارتند از:

    AX,BX,CX,DX که همگی 16 بیتی هستند و برای اعمال محاسباتی و اعمال همه منظوره استفاده می شود.هر یک از این ریجیسترها قابلیت دسترسی به 8 بیت را دارند. یعنی میتوان داده ها را روی 8 بیت کم ارزش مانند AL,BL,CL,DL 8 بیت پر ارزش مانند AH,BH,CH,DH نوشت.
    ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــــــ

    AX: این ثبات برای اعمال ورودی خروجی زیاد استفاده می شود.
    BX: از این ثبات بعنوان اندیس جهت توسعه آدرس استفاده می شود. ضمن اینکه در محاسبات کاربرد دارد.
    CX: از این ثبات علاوه بر کاربرد در محاسبات می توان جهت تعداد دفعات تکرار حلقه استفاده کرد.
    DX: این ثبات برای اعمال ورودی خروجی زیاد همجنین ضرب و تقسیم بزرگ استفاده می شود.
    ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــــــ

    ثبات های سگمنت عبارتند از CS,DS,SS,ES : که هر کدام 16 بیتی بوده و آدرس شروع هر سگمنت متناظر را نگهداری می کند.

    ریجسترهای ایندکس SP,BP,SI,DI : که حاوی آفست داده و دستور عملها هستند.

    ریجیسترهای وضعیت کنترلی: FR,IP

    FR: یا ثبات پرچم این ثبات جهت نمایش وضعیت پردازنده مرکزی در اثر اجرای دستور عمل محسباتی انجام می شود. و فقط 9 بیت از 16 بیت ستفاده می شود.
    ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــــــ

    CF محتوی رقم نقلی بوجود آمده از باارزش ترين بيت در عمليات محاسباتی يا چرخش
    PF برای کنترل صحت انتقال داده. اگر صفر باشد تعداد بيتهای انتقالی فرد است و اگر يک باشد زوج است
    AF محتوی رقم نقلی از بيت سوم به چهارم در يک بايت است. در عمليات BCD کاربرد دارد
    ZF اگر نتيجه عمليات محاسباتی صفر باشد اين بيت 1 است در غير اينصورت صفر است
    SF در صورت منفی بودن نتيجه عمليات اين بيت 1 است در غير اينصورت صفز است
    TF برای اجرای دستورالعمل به صورت دستور به دستور اين بيت بايد 1 باشد
    IF اگر 1 باشد وقفه فعال است و اگر صفر باشد وقفه غير فعال است يعنی سيستم وقوع وقفه را ناديده می گيرد
    DF اگر 1 باشد عمل مقايسه يا انتقال داده از سمت راست به چپ صورت می گيرد در غير اينصورت از چپ به راست
    OF اگر در باارزش ترين بيت سرريزی وجود داشته باشد اين بيت يک می شود. (توضيحات بيشتر در محاسبات مکمل 2 داده شده است)
    ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــــــــــــ

    IP: این ثبات حاوی آفست و دستور اجرایی بعدی در سگمنت کد می باشد.


    سگمنت

    تعریف اول: برای آدرس دهی به هر يک از اين سگمنت های برنامه يک ثبات وجود دارد که مشخص می کند کدام بخش حافظه برای قسمت های مختلف برنامه به کار رفته است.
    تعریف دوم: ناحیه ای از حافظه است که از مرز پاراگراف شروع می شود یعنی آدرس شروع آن بر 16 قابل تقسیم است و اندازه هر سگمنت حداکثر 64 کیلو بایت می باشد. بطور کل هم چهار سگمنت وحود دارد.

    ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــــــ
    CS شامل آدرس شروع سگمنت کد، که به CPU می فهماند دستورالعمل های برنامه در کجا قرار دارند
    DS شامل آدرس شروع سگمنت داده که به پردازنده می فهماند داده ها و فضای کاری در کجا قرار دارد
    SS آدرس شروع سگمنت پشته را در خود ذخيره می کند
    ES آدرس شروع سگمنت اضافی، سگمنت داده دوم
    ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــــــ

    ثبات های اشاره گر
    ثبات های اشاره گر نگهدارنده بخش آفست در آدرس دهی هستند و همراه با يکی از ثبات های سگمنت به محلی از حافظه اشاره دارند. طبق پيش فرض ثبات های همه منظوره و ايندکس همراه با DS و ثبات های پشته همراه با SS و IP همراه با CS استفاده می شوند.

    IP همراه با ثبات CS به دستورالعمل بعدی که بايد توسط CPU اجرا شود اشاره می کند.
    SP آفست مکانی از سگمنت پشته که عمل قرار گرفتن داده در پشته صورت می گيرد. به عبارت ديگرSS:SP به بالای پشته اشاره دارد.
    BP برای دسترسی به متغيرهای محلی که در پشته قرار دارند استفاده می شود.
    ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــــــ

    ثبات های ايندکس
    دو ثبات 16 بيتی ايندکس وجود دارد که اغلب به عنوان اشاره گر به همراه DS به کار می روند تا به داده های موجود در سگمنت داده دسترسی شود. اما می توانند به همان منظورهای ديگر، مانند ثبات های همه منظوره، هم استفاده شود؛ گرچه نمی توانند به دو بخش 8 بيتی تجزيه شوند.

    SI برای آدرس دهی و در عمليات رشته ای بعنوان مبدا استفاه می شود
    DI برای آدرس دهی و در عمليات رشته ای بعنوان مقصد استفاه می شود

    نظرات خودتون رو برای من پیام خصوصی کنید/
    آخرین ویرایش به وسیله JaVa : شنبه 27 خرداد 1391 در 17:23 عصر

  8. #8

    نقل قول: آموزش برنامه نویسی به زبان اسمبلی به صورت گام به گام

    قالب کلی دستورات اسمبلی ومعرفی عملوند های حافظه

    قالب کلیدستورات اسمبلی به این شکل است:
    [توضیحات;][عملوندها]دستورالعمل[شناسه]

    دستورالعمل های اسمبلی ممکن است فاقد شناسه، عملوندها و توضیحات باشند.

    شناسه از عناصر اصلی برنامه اسمبلی مثل نام برنامه و برچسب هاست.

    هر دستور زبان اسمبلی می تواند یک، دو یا هیچ عملوندی نداشته باشد. اگر دستور العمل دو عملوند داشته باشد فرمت کلی آن دستور العمل بصورت زیر است:
    [توضیحات;]<عملوند منبع>و<عملوند مقصد>دستورالعمل[شناسه]


    مثال:
    L1: Mov Ax,4c00h;This is a Sample


    عملوند مقصد جایی است که نتیجه عمل دستورالعمل باید در آن قرار گیرد و می تواند ثبات یا یک محل از حافظه باشد.
    عملوند منبع جایی است که اطلاعات مورد نیاز دستورالعمل در آن ها قرار دارد. عملوند منبع می تواند یک مقدار ثابت ، ثبات یا یک محل حافظه باشد.

    قالب کلی برنامه اسمبلی که ما اینجا باهاش سر کار داریم:

    تعریف سگمنت پشته
    تعریف سگمنت داده
    نام سگمنت کد
    Proc Far نام برنامه
    .
    .
    .
    Endp نام برنامه
    Ends نام سگمنت کد
    نام برنامه End

    تعریف سگمنت ها


    پارامترها Segment نام سگمنت
    .
    .
    .
    Ends نام سگمنت

    هر برنامه ممکن است چند سگمنت داشته باشد. مثلا: سگمنت داده، سگمنت پشته ، سگمنت کد، برای تعریف هر سگمنت از شبه دستور Segment بصورت بالا استفاده می شود.

    پارامترهای که در تعریف سگمنت بکار می روند بر سه نوع اند:

    1- پارامتر تنظیم(Align)
    2- پارامتر ترکیب(Combine)
    3- پارامتر کلاس(Class)


    [پارامتر کلاس][پارامتر ترکیب][پارامتر تنظیم] Segment نام سگمنت
    .
    .
    .
    ENDS نام سگمنت


    پارامتر تنظیم مرزی را که سگمنت باید از آن جا شروع شود را مشخص می کندپارامتر تنظیم یکی از مقادیر زیر را می پذایرد.

    1-byte: آدرس سگمنت می تواند از هر نقطه ای از حافظه شروع شود.
    2-word:آدرس سگمنت می تواند از هر نقطه ای از حافظه که آدرس آن زوج باشد شروع شود.
    3-para:آدرس سگمنت می تواند از مرز پاراگراف یعنی جایی که بر 16 قابل تقسیم است می تواند شروع شود.
    4-Page:
    آدرس سگمنت می تواند از مرز پاراگراف یعنی جایی که بر 256 قابل تقسیم است می تواند شروع شود.

    نکته: اگر در مقدار پارامتر چیزی نوشته نشود مقدار پیشفرض Para است.

    ادامه دارد........
    آخرین ویرایش به وسیله JaVa : یک شنبه 11 تیر 1391 در 15:12 عصر

  9. #9
    کاربر دائمی
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    Fars
    پست
    108

    نقل قول: آموزش برنامه نویسی به زبان اسمبلی به صورت گام به گام

    چرا به اموزش ادامه نمیدید؟

تاپیک های مشابه

  1. آموزش برنامه نویسی اندروید به زبان فارسی
    نوشته شده توسط hesamy2004 در بخش Android Studio
    پاسخ: 115
    آخرین پست: شنبه 18 بهمن 1399, 15:26 عصر
  2. پاسخ: 6
    آخرین پست: جمعه 28 آبان 1395, 21:58 عصر
  3. آموزش: آموزش برنامه نویسی سی شارپ به صورت مالتی مدیا
    نوشته شده توسط Restlesa در بخش C#‎‎
    پاسخ: 67
    آخرین پست: دوشنبه 02 آبان 1390, 13:26 عصر
  4. آموزش: لینک آموزش برنامه نویسی پایگاه داده به صورت فیلم آموزشی
    نوشته شده توسط alimanam در بخش C#‎‎
    پاسخ: 6
    آخرین پست: دوشنبه 05 اردیبهشت 1390, 00:01 صبح

برچسب های این تاپیک

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

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