
دوره آموزش اسمبلی x86
آموزش زبان اسمبلی x86 از پایه ای ترین مفاهیم تا در نهایت برنامه نویسی روی سیستم عامل های مدرن با استفاده از اسمبلی x86 . پیش نیاز مناسب جهت ورود به مهندسی معکوس ، توسعه بد افزار و برنامه نویسی سطح پایین .
توضیحات
🚀 دوره آموزش زبان اسمبلی x86 — نقطه شروع سفر به دنیای واقعی سیستمها
اگر میخواهی واقعاً بفهمی کامپیوتر چطور کار میکند، یا روزی بخواهی وارد دنیای مهندسی معکوس، تحلیل بدافزار یا توسعه نرمافزارهای سطح پایین شوی، یادگیری زبان اسمبلی ضروری است.
در این دوره من از پایهترین مفاهیم شروع کردهام — از مبنای اعداد و منطق باینری گرفته تا ساختار داخلی پردازنده 8086، رجیسترها، آدرسدهی حافظه و در نهایت نوشتن و اجرای دستورات اسمبلی.
با این حال، برای درک بهتر مطالب، لازم است پیشتر با حداقل یک زبان برنامهنویسی سطح بالا (مثل C، Python یا ++C) آشنا باشید.
💡 هدف این دوره فقط یاد دادن چند دستور نیست، بلکه ساختن درکی عمیق از نحوهی کار سیستم در پایینترین سطح است — جایی که نرمافزار و سختافزار واقعاً به هم میرسند.
پس اگر همیشه کنجکاو بودی بدانی درون پردازنده چه میگذرد، یا میخواهی برای دورههای پیشرفتهتر مثل مهندسی معکوس آماده شوی، این دوره همان جایی است که باید از آن شروع کنی.
معماری x86 , تعریف ریزپردازنده ، معرفی مدل von neumann و اجزای اصلی سخت افزار
مبنا های مختلف اعداد و نحوه تبدیل آن ها به یکدیگر
نحوه انجام محاسبات ساده ریاضی نظیر جمع و تفریق به طور مستقیم روی مبنا های غیر از 10 نظیر 2 ، 8 و 16
معرفی روش های مختلف ذخیره اعداد منفی در کامپیوتر
بررسی عملگر های بیتی پراستفاده نظیر AND , OR , NOT ,XOR و کاربرد آن ها
معرفی واحد های BIU و EU ، چرخه اجرا و خط لوله 8086
بررسی ثبات ها یا Register ها در پردازنده
بررسی مدل حافظه مورد استفاده از ریزپردازنده 8086 به نام قطعه بندی (Segmentation)
بررسی حافظه پشته یا Stack
معرفی شبیه ساز emu8086 و نحوه کار با آن
نحوه تعریف داده های دلخواه در قطعه (Segment) داده
بررسی تمام حالت های آدرس دهی پردازنده 8086
بررسی مفهوم Endianness و دستورالعمل های LEA , XCHG
بررسی دستورالعمل های INC,DEC,NEG,ADD,SUB و تاثیر آن ها روی پرچم ها
بررسی دستورالعمل های ضرب و تقسیم علامت دار و بدون علامت و دستورالعما های CWD , CBW
بررسی دستورالعمل های منطقی AND , OR , NOT و XOR و کاربرد آن ها
بررسی دستورالعمل های SHR , SHL , SAR , SAL , ROR , ROL , RCR , RCL
بررسی دستورالعمل پرش غیر شرطی
بررسی دستورالعمل مقایسه (CMP) و پرش های شرطی
پیاده سازی تمرین مطرح شده در جلسه قبل یعنی محاسبه مجموع اعداد 1 تا 100 در زبان اسمبلی x86
بررسی دستورالعمل TEST و نحوه استفاده از آن برای تست کردن یک بیت خاص در یک عدد
بررسی نحوه پیاده سازی انواع حالات ساختار های شرطی if , if-else , if-elseif-else در زبان اسمبلی با استفاده از دستورالعمل های مقایسه و پرش های شرطی
حل تمرینات مطرح شده در قسمت قبلی با استفاده از ساختار های شرطی
ررسی نحوه پیاده سازی حلقه های شرطی در زبان اسمبلی با استفاده از دستورات مقایسه و پرش شرطی
حل اولین تمرین مطرح شده در قسمت 25 یعنی نوشتن برنامه ای در زبان اسمبلی که اعداد اول را تشخیص دهد
بررسی دومین تمرین مطرح شده در قسمت 25
حل آخرین تمرین مطرح شده در قسمت 25 یعنی حل چالش پیدا کردن جملات دنباله فیبوناچی
این آموزش متعلق به بخش مهندسی معکوس است
برای مشاهده تمام آموزش های مهندسی معکوس وبسایت مسترپایتون به بخش مهندسی معکوس مراجعه کنید