دانلود مقاله رایگان زبان اسمبلی

Word 35 KB 3195 4
مشخص نشده مشخص نشده دانلود مقاله های رایگان
قیمت: ۰ تومان
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • زبان اسمبلی قدیمی ترین زبان برنامه نویسی سطح پایین بعد از زبان ماشین است که ساختار و عملکردی وابسته به ماشین دارد و وسیله خوبی برای یادگیری نحوه کار کامپیوتر، سیستم عامل، کامپایلرها و زبان های سطح بالا است .

     

    مقایسه زبان اسمبلی و زبان های سطح بالا
    زبان ماشین
    زبان اسمبلی چیست؟
    اسمبلر
    هدف از یادگیری زبان اسمبلی

    مقایسه زبان اسمبلی و زبان های سطح بالا

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

     

    1. زبان های سطح بالا
        • مانند C++، Pascal، Java و Visual Basic.
    2. زبان های سطح پایین
        • زبان ماشین
        • زبان اسمبلی

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

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

    زبان ماشین

    هر خانواده ای از پردازنده ها دارای مجموعه ای از دستورالعمل های منحصر بفرد است که زبان ماشین نامیده می شود. مجموعه دستورالعمل های یک پردازنده (Instruction Set) مجموعه ای از اعداد دودوئی است که ماشین می تواند آنها را درک و اجرا کند. هر نوع CPU تنها زبان مخصوص خود را درک می کند و دارای مفسری بنام microprogram است که دستورات زبان ماشین را به سیگنال های سخت افزاری تفسیر و ترجمه می کند.

    مثال 1. اعداد دودئی زیر یک دستورالعمل ماشین اینتل است که عدد 5 را در ثبات AL قرار می دهد.

    1011 0000 0000 0101

    مثال 2. دستور زیر ثبات های EAX و EBX را جمع کرده و حاصل را در ثبات EAX ذخیره کند.

    0000 0011 1100 0011

    هر دستورالعمل زبان ماشین شامل کد منحصر بفردی دارد که کدعملیاتی (Operation Code) یا Opcode نامیده می شود. Opcode همیشه در ابتدای دستورالعمل قرار می گیرد. اکثر دستورات شامل داده هم هستند که توسط دستورالعمل استفاده می شود و عملوند (Operand) نام دارند.

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

    زبان اسمبلی چیست؟

    زبان اسمبلی که یک زبان برنامه نویسی سطح پایین است که ساختار و عملکردی وابسته به ماشین دارد. بین عبارات آن و دستورالعمل های زبان ماشین کامپیوتر تناظر یک به یک برقرار است. یعنی هر دستورالعمل اسمبلی دقیقا یک دستورالعمل زبان ماشین را نشان می دهد، در حالیکه در زبان سطح بالا یک عبارت معمولا به چندین دستورالعمل ماشین تبدیل می شود.

    یک برنامه اسمبلی مانند برنامه های سطح بالا به صورت text نوشته می شود. هر دستورالعمل زبان اسمبلی یک نمایش نمادی (یک کد الفبائی کوتاه) از یک دستورالعمل ماشین است، که به این صورت معنی دستور واضح تر از کد زبان ماشین می شود.

    مثال 1. کلمه mov نمادی برای عمل انتقال داده است. دستور اسمبلی زیر جمع ثبات AL و عدد 5 را نشان می دهد.

    mov AL,5

    مثال 2. کلمه add یک نماد برای دستورالعمل جمع است. دستور جمع ثبات های EAX و EBX به صورت زیر نوشته می شود.

    add EAX, EBX

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

    مثال 3. دستوری که عملوندی ندارد و فلگ carry را صفر می کند.

    clc

    مثال 4. دستور زیر عدد یک را به ثبات AX اضافه می کند.

    inc AX

    مثال 5. دستور جمع مقدار متغیر Count با محتوای ثبات به صورت زیر است.

    mov AX,Count

    هر دستور اسمبلی می تواند همراه با لیستی از عملوند ها باشد. فرم کلی دستورالعمل های اسمبلی به صورت زیر است:

    mnemonic operand(s)

    عملوند دستورالعمل می تواند از انواع زیر باشد :

     

    • ثبات. عملوندهائی که مستقیما به محتوای ثبات های پردازنده مراجعه می کنند. مانند ثبات AL در مثال 1.
    • متغیر یا حافظه ای. عملوندهائی که به داده ای در حافظه اشاره دارند. مانند متغیر Count در مثال 5.
    • فوری. این عملوندها مقادیر ثابتی هستند که در داخل دستورالعمل قرار می گیرند. در مثال 1عدد 5 یک عملوند فوری است.
    • ضمنی. عملوندهائی که صریحا در دستور ذکر نمی شوند. در مثال 4عدد یک با ثبات AL جمع می شود. عدد یک عملود ضمنی است.

    اسمبلر

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

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

    محبوب ترین اسمبلرها برای پردازنده ها ی خانواده اینتل عبارتند از:

     

    • ماکرواسمبلر Microsoft’s Assembler MASM
    • توربو اسمبلر Borland’s Assembler TASM
    • و ASM86

    برنامه دیگری که برای ردیابی اجرای برنامه و بررسی محتوای حافظه کاربرد دارد دیباگر(Debugger) است که استفاده از آن بهترین راه برای یادگیری برنامه های اسمبلی و روند اجرای آنهاست. دیباگر برنامه ای است که اجازه بررسی ثبات ها و حافظه را بعد از اجرای هر دستور برنامه می دهد و خصوصا برای تست برنامه های اسمبلی مفید است.

    برنامه Debug از جمله ساده ترین دیباگرهاست که توسط MS-DOS عرضه شده است. CodeView همراه با میکروسافت اسمبلر می آید که اجازه می دهد کد منبع برنامه ها، بلاک های حافظه و ثبات ها را مشاهده کنید. Turbo Debugger بورلند هم به همین صورت است.

    یک برنامه دیگر همراه با اسمبلر برنامه لینکر(Linker) است که فایل های مجزای تولید شده توسط اسمبلر یا کامپایلر را به یک برنامه اجرائی تبدیل می کند. برنامه Link که همراه فایل های MS-DOS می باشد یکی از متداولترین برنامه های لینکر می باشد.

    هدف از یادگیری زبان اسمبلی

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

     

    • زبان اسمبلی وسیله خوبی برای یادگیری نحوه کار کامپیوتر، کامپایلرها و زبان های سطح بالا است و به درک عمیق تر معماری کامپیوتر، مفاهیم سیستم عامل، نمایش داده ها و دستگاه های سخت افزاری کمک می کند که دانستن آنها باعث می شود برنامه نویس از عهده اشکالزدائی و رفع مسائل برنامه نویسی در سطح بالا بهتر برآید و نرم افزارهای پربارتری را در زبان های سطح بالا مانند ++C پیاده سازی کند.
    • برنامه های اسمبلی سریع تر، کوچکتر و با توانائی های بیشتر از زبان های دیگر هستند و معمولا حافظه و زمان اجرای کمتری را نیاز دارد. گاهی نوشتن کد در اسمبلی سریعتر و کوتاهتر از کدکامپایل شده می شود. یک برنامه ویژوال بیسیک می تواند زیربرنامه های DLL نوشته شده در زبان اسمبلی را برای افزایش سرعت برنامه در حالات بحرانی فراخوانی کند.
    • برنامه های اسمبلی می توانند براحتی از محدودیت های موجود در زبان های سطح بالا عبور کنند و کنترل بیشتری نسبت به نیازمندی های سخت افزاری خاص ارائه دهند. برخی از اعمال در زبان های سطح بالا دشوار یا غیر ممکن است، مانند ارتباط با سیستم عامل یا دسترسی مستقیم به کنترلرها. یک برنامه نویس مجرب می تواند با نوشتن کد بیشتر راهی برای گذشتن از این محدودیت ها پیدا کند اما خوانائی برنامه کاهش پیدا می کند. زبان اسمبلی، در مقابل، محدودیت های کمی دارد و تقریبا همه چیر را به نظر برنامه نویس واگذار می کند.

    این دلایل نشان می دهند که فراگرفتن اسمبلی می تواند مفید باشد حتی اگر هیچوقت با آن برنامه ای نوشته نشود.

    امروزه تولید برنامه ای که کاملا با زبان اسمبلی باشد غیر معمول است، زیرا برنامه نویسی در زبان سطح بالا بسیار ساده تر از اسمبلی است علاوه براین استفاده از اسمبلی باعث می شود حمل برنامه به کامپیوترهای مختلف دشوارتر شود. در حقیقت بندرت کسی کاملا در زبان اسمبلی برنامه می نویسد. در عوض اسمبلی برای بهینه سازی بخش های حساس برنامه و افزایش سرعت و دسترسی به سخت افزار و نوشتن برنامه های PROM استفاده می شود.

    البته زبان برنامه نویسی C کیفیت منحصر به فردی در عرضه کردن مصالحه بین ساختار سطح بالا و جزئیات سطح پایین دارد. اکثر کامپایلرهای C توانائی تولید کد منبع اسمبلی را دارند. برنامه نویسان اغلب ترکیب C و اسمبلی را در برنامه های کاربردی به کار می برند.

     

  • فهرست:

    ندارد.


    منبع:

    ندارد.

CPU تراشه enCorRe دستور پشتیبانی می‌کند. همه برنامه‌ها باید از این 37 دستور استفاده کنند. سیپرس یک مترجم مجانی ارائه می‌دهد که کدهای اسمبلی را که شما می‌نویسید به فایل‌های موضوع، که به منظور برنامه‌ریزی در EPROM تراشه تهیه می‌شوند، تبدیل می‌کند. اگر ترجیح دهید که در C برنامه‌نویسی کنید، سیپریس یک مفسر C نیز پیشنهاد می‌کند. اگر با برنامه‌نویسی اسمبلی میکروکنترلر آشنایی داشته ...

++C ++C يک زبان برنامه نويسي همه منظوره و سطح بالا است. ++C يک زبان چندرگه است که از برنامه نويسي رويه‌اي، تجريد داده‌ها و برنامه نويسي شئ گرا پشتيباني مي‌‌کند. ++C به همراه جد خود C از پرطرفدارترين زبانهاي برنامه نويسي تجاري هستند. زبان برنامه‌

نسخه اصلي Basic (که شامل symbolic instruction code begginers all purpose به معني «کد حاوي دستورات نمادين همه منظوره مخصوص نوآموزان» در کالج دارتموت در سال 1964 به عنوان زباني آموزشي ابداع گشت.يادگيري و طريقه استفاده از ساير زبانهايي که تا آن زمان وج

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

درمورد علل شکل گیری Visual Studio.NET بطور خلاصه می توان گفت با اینکه مایکروسافت می دانست با ابزارهای قبلی شرکت می توان برنامه های اینترنتی نوشت ولی برای قبضه کردن بازار احتیاج به تکنولوژی جدیدی داشت . مایکروسافت از سال 1998 که ویژوال استودیو 6 را به بازار وارد کرد در پی حل این مشکلات بود تا در سال 2000 ، NET. را در کنفرانس برنامه نویسان حرفه ای PDC به جهان معرفی کرد. از آن روز ...

برنامه‌نويسي رايانه در فرهنگ واژه غير متخصصين ممکن است به تمام پروژه ساخت نرم‌افزار يا برنامه? رايانه‌اي گفته شود. با اين همه برنامه‌نويسي تنها بخشي از فرآيند توسعه نرم‌افزار يا برنامه رايانه‌اي است. اهميت، توجه و منابع اختصاص داده شده به برنامه‌نوي

Microsoft .NET Microsoft . NET واژه اي که به مثابه يک چتر ، شماري از فن آوريهاي که اخيراً توسط شرکت مايکروسافت عرضه شده اند در بر مي گيرد . با کنار هم قرار گرفتن اين فن آوريها ، يک تحول اساسي در بستر توسعه مايکروسافت ، از زمان انتقال از سيستم 16 بي

تاريخچه ويژوال بيسيک حدودسي و پنج سال قبل در کالج دارتموث زباني پا به عرصه وجود گذاشته برنامه نويسي را از تسلط حرفهايها خارج کرد و به مبتديان هم امکان داد تا وارد دنياي شيرين برنامه نويسي شوند ؛ اين زبان بيسيک نام گرفت. زبان بيسيک از ساير زبانها

خلاصه اي درباره LISP و PROLOG به وسيله برآورده کردن نيازهاي گفته شده، LISP و PROLOG هر دو داراي زبانهاي برنامه نويسي غني و کاملي هستند وقتي که اين زبانها را فرا مي گيريم، دانشجو در ذهن و فکر درباره روشهايي که آنها به وسيله ويژگيهاي خاص هر زبان پش

فصل اول : آشنايي با Access تاريخچه Access : در سال 1992 ، Microsoft Access به عنوان يک DBMS عرضه شد و در طي سالهاي متمادي ، در رده خود به صدر رسيد . Access به عنوان بخشي از مجموعه برنامه هاي معروف Microsoft Access روزانه توسط ميليون ها نفر استفاده م

ثبت سفارش
تعداد
عنوان محصول