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

افشای: پشتیبانی شما به حفظ سایت کمک می کند! ما برای برخی از خدماتی که در این صفحه توصیه می کنیم هزینه ارجاع دریافت می کنیم.


یک زبان مونتاژ یک زبان برنامه نویسی سطح بسیار پایین است که مکاتبات 1 به 1 با کد دستگاه دارد – مجموعه دستورالعملهای باینری که مقادیر داخل و خارج از رجیسترها را در یک CPU (یا ریز پردازنده دیگر) منتقل می کنند..

مقدمه

ریزپردازنده یک ماشین حساب مکانیکی است. این یک شماره از نام های ثبت شده دارد ، مانند نگه داشتن قلم برای اعداد. این دستورالعمل ها را به صورت کد دستگاه دریافت می کند ، که توسط یک سری بیت های باینری (1 و 0) نمایش داده می شود. به عنوان مثال ، در اینجا خط کد دستگاه وجود دارد:

10110000 01100001

اولین بیت (10110) دستورالعمل کپی کردن مقدار در یک رجیستر است. سه رقم بعدی (000) رجیستری را نشان می دهد که مقدار در آن کپی می شود. بقیه آن (01100001) مقداری است که باید کپی شود.

البته 10110 بی معنی است ، و کامپیوتر “نمی داند” به معنای “کپی کردن مقدار” است. این پردازنده به گونه ای طراحی شده است که مجموعه ای از تکانه های الکتریکی ارائه شده توسط 10110 (خاموش و روشن) نتیجه مطلوب را ایجاد می کند. این بخشی از معنای مکانیکی است.

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

مثال

به عنوان مثال ، اگر 10110 به معنی “تغییر مقدار” باشد ، می توانیم آن را با دستور MOV خلاصه کنیم.

ما همچنین می توانیم به 000 ثبت نام ساده تر به یاد بیاوریم (در این حالت ، ثبت نام AL نامگذاری می شود).

سرانجام ، ما می توانیم مقدار را در یک سیستم شماره گذاری مختلف ، مانند اعشار (91) یا هگزیدسیال (61) ارائه دهیم. سپس آن خط MOV AL ، 61 خواهد بود. پس از نوشتن یک برنامه کامل به این روش ، اسمبلر به راحتی می تواند هر خط را به نمایه دودویی مناسب ترجمه کند.

رایانه ها با پردازش میلیاردها این دستورالعمل کوچک در ثانیه ، کار می کنند (انجام محاسبات ، انتقال داده ها ، تبدیل داده ها).

دستورالعمل های بسیار ساده (این مقدار را جابجا کنید ، آن مقدار را کپی کنید ، این دو مقدار را با هم اضافه کنید و مقدار آن را در آنجا ذخیره کنید) برای ترکیب عملیات پیچیده ، که در سطوح بالاتر و بالاتر ترکیب می شوند برای انجام کارهایی که شما به عنوان معنی دار می شناسید ترکیب می شوند..

منابع زبان مجمع

منابع آنلاین

آموزش ها و راهنمای اصلی

  • آموزش برنامه نویسی مجمع از نقطه آموزش

  • برنامه نویسی زبان مجمع X86 ، بخشی از کتابچه راهنمای توسعه دهندگان FreeBSD ، که به نوشتن زبان مونتاژ در بستر توسعه سیستم عامل کمک می کند

  • با سلام به مجمع X64 ، یک معرفی نسبتاً ملایم از مونتاژ ، از Code به عنوان بلاگ Art

  • X86 Assembly Language Programming، یکی دیگر از آموزش هایی که زبان مونتاژ را به خوبی در زمینه برنامه نویسی سیستم عامل خود قرار می دهد ، این مورد را به لینوکس ، ویندوز و حتی کمی در مورد Mac OS X

  • PC Assembly Language (زبان مونتاژ رایانه) ، این برنامه بر روی رایانه های شخصی 32 بیتی Linux ، Windows یا FreeBSD است

  • راهنمای مجمع X86 ، از بخش علوم کامپیوتر دانشگاه ویرجینیا

  • وبستر: صورتحساب خود را به عنوان “محلی در اینترنت برای یادگیری زبان مونتاژ” ، این سایت (ظاهرا) توسط نویسنده کتاب “The Art of Assembly Language” و مخترع HLA اداره می کند.

  • آموزش مجمع لینوکس

  • X86-64 آسان

  • مجمع X86

  • آموزش برنامه نویسی مونتاژ ویندوز (pdf)

آموزش های ویدئویی

  • آموزش برنامه نویسی زبان مونتاژ ، مجموعه ای بسیار کامل 55 ویدیویی درمورد مونتاژ ، به دنبال کتاب Assembly Language برای پردازنده های x86 (نسخه ششم) توسط Kip Irvine (اگر فیلم ها را دنبال نمی کنید ، احتمالاً نسخه جدیدتری را می خواهید)

  • دوره ویدیویی برنامه نویسی Assembly Language ، یک مجموعه ویدئویی 70 قسمتی است که توسط آرتور گریفیت تدریس می شود و دارای جذابیت بسیار مردمی است

  • Assembly Language Intro ، سخنرانی در کلاس کلاس در کرنل ، با معرفی زبان مونتاژ

  • برنامه نویسی Assembly Language ، معرفی یک ساعته در مونتاژ و یک قالب عالی اگر واقعاً دوست داشتید از نمونه های جبر در یک پروژکتور بدون سر در هنگام دبیرستان دیدن کنید (این بخشی از یک سری بزرگتر در مورد ریز پردازنده ها و میکروکنترلرها است).

ارجاع

  • لیست دستورالعمل X86 ، لیست کاملی از کلیه دستورالعمل های معماری x86 ، همراه با یادداشت ها در مورد اضافه شدن هر کدام

  • مرجع کد و دستورالعمل X86

  • برگه تقلب زبان مونتاژ Intel X86 (pdf).

ابزارها

اسمبلرها – مونتاژ کننده های زیادی در دسترس هستند – در اینجا چند مورد از محبوب ترین مونتاژ کننده های منبع آزاد و منبع آزاد وجود دارد:

  • ناسم

  • FASM

  • YASM

  • گاسم.

IDE (محیط های توسعه یکپارچه):

  • SASM ، IDE crossplatform ساده برای زبانهای مونتاژ NASM ، MASM ، GAS ، FASM

  • IDE تازه ، زبان مونتاژ بصری IDE با مونتاژ کننده FASM داخلی

  • WinAsm Studio ، یک IDE رایگان برای توسعه برنامه های Windows 32 بیتی و برنامه های DOS 16 بیتی با استفاده از Assembler است

  • ویژوال MASM.

جامعه و یادگیری مداوم

  • مجمع مجمع در Dream.In.Code

  • انجمن MASM

  • زبان مونتاژ و کد ماشین در انجمن های هک

کتابها

  • هنر مجمع زبان (نسخه آنلاین) یکی از محبوب ترین کتاب ها در مورد زبان مونتاژ است ، از No Starch Press که همیشه قابل خواندن است. همچنین ممکن است شما از همان نویسنده به این موارد علاقه مند باشید: کد عالی را بنویسید: جلد 1: در حال درک ماشین و نوشتن کد عالی ، دوره 2: سطح پایین فکر کردن ، نوشتن سطح بالا

  • زبان مونتاژ گام به گام: برنامه نویسی با لینوکس

  • زبان مجمع حرفه ای

  • زبان مونتاژ برای پردازنده های x86

  • برنامه نویسی مدرن زبان مجمع X86: 32 بیتی ، 64 بیتی ، SSE و AVX

  • برنامه نویسی به برنامه نویسی 64 بیت مونتاژ برای لینوکس و سیستم عامل X: نسخه سوم – برای لینوکس و سیستم عامل X

  • مقدمه ای بر زبان معماری 80X86 و معماری رایانه

  • برنامه نویسی زبان مونتاژ: برای رایانه های شخصی و لپ تاپ.

باید زبان مجمع را یاد بگیرید?

این که آیا شما باید زبان مونتاژ را یاد بگیرید ، به اهداف شما بستگی دارد. برای اکثر توسعه دهندگان ، پاسخ “نه” است.

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

از دیدگاه عملی ، فقط تعداد معدودی از مهندسان و دانشمندان رایانه در جهان از زبان مونتاژ استفاده می کنند.

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

  • سیستم های عامل

  • سیستم عامل

  • درایورهای دستگاه

  • طراحی زبان

  • طراحی کامپایلر

  • سیستم های جاسازی شده

  • طراحی سخت افزار

  • رمزنگاری پیشرفته

  • علم نظری رایانه

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

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

چیزهای دیگر برای یادگیری

بعضی از زبانها وجود دارند که اگر فقط کمی بدانید ، می توانید کارهای زیادی انجام دهید. پایتون و روبی مانند این هستند – می توانید در یک آخر هفته به اندازه کافی یاد بگیرید تا چیزی ارزشمند بسازید. زبان مونتاژ چنین نیست.

زبان مونتاژ هرگز در خلاء استفاده نمی شود. نوع مهندس که نیاز به دانستن مونتاژ دارد احتمالاً در مناطقی کار می کند که نیاز به دانستن تعداد کمی از مهارت های دیگر داشته باشد تا بتواند مؤثر باشد. این موارد شامل موارد زیر است:

  • زبان های سخت افزاری مانند VHDL و Verilog به همراه درک خوبی از ریز پردازنده ها و مهندسی برق

  • زبانهای سیستم عامل سطح پایین مانند C و مشتقات آن: C ++ ، C # و D

  • زبانهای میراثی مانند Fortran و Cobol

  • زبان های بستر های نرم افزاری مانند Java و Objective-C

  • الگوریتم ها

  • کامپایلر ، مترجم و طراحی زبان.

مطالعه بیشتر و منابع

ما اطلاعات بیشتری در مورد این نوع مطالب ، برنامه نویسی: زبان ها ، گاهشمار داریم & راهنماها.

چه کدی را باید بیاموزید?

گیج شده در مورد چه زبان برنامه نویسی که باید رمزگذاری کنید؟ اینفوگرافیک ما را ببینید ، چه کدی را باید یاد بگیرید?

این نه تنها در مورد جنبه های مختلف زبان بحث می کند ، بلکه به سؤالات مهمی از جمله ، “چقدر می توانم برنامه نویسی جاوا را برای امرار معاش بسازم؟”

چه کد باید یاد بگیرید؟
چه کدی را باید بیاموزید?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map