فلش‌کارت‌های آموزشی مبانی برنامه‌نویسی به زبان اسمبلی: از سخت‌افزار تا اجرای کد

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

انتخاب پلن

انتخاب پلن برای ادامه خرید الزامی است.

پرداخت اقساطی
در صورت خرید اقساطی هر قسط: 74,988 تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.
پرداخت اقساطی با دیجی‌پی پرداخت اقساطی با ترب‌پی

🎓 دوره آموزشی جامع

📚 اطلاعات دوره

عنوان دوره: مبانی برنامه‌نویسی به زبان اسمبلی: از سخت‌افزار تا اجرای کد

موضوع کلی: برنامه‌نویسی سیستم

موضوع میانی: زبان اسمبلی

📋 سرفصل‌های دوره (100 موضوع)

  • 1. مقدمه‌ای بر معماری کامپیوتر
  • 2. لایه‌های انتزاعی و نقش زبان اسمبلی
  • 3. سیستم‌های عددی: مبنای دودویی و شانزده‌شانزدهی
  • 4. نمایش داده‌ها: اعداد صحیح بدون علامت
  • 5. نمایش داده‌ها: اعداد صحیح علامت‌دار
  • 6. مقدمه‌ای بر دروازه‌های منطقی و جبر بولی
  • 7. معماری کلی کامپیوتر: CPU، حافظه، ورودی/خروجی
  • 8. زبان ماشین در مقابل زبان اسمبلی
  • 9. چرا برنامه‌نویسی اسمبلی را یاد بگیریم؟
  • 10. تنظیم محیط توسعه: اسمبلر، لینکر، دیباگر
  • 11. ساختار یک برنامه اسمبلی اولیه
  • 12. مرور کلی بر خانواده پردازنده‌های x86/x64
  • 13. رجیسترهای عمومی هدف در x86/x64
  • 14. رجیسترهای سگمنت (مفاهیم بنیادی)
  • 15. اشاره‌گر دستورالعمل (EIP/RIP) و رجیستر پرچم‌ها
  • 16. سازماندهی حافظه و مفهوم آدرس‌دهی
  • 17. حالت‌های آدرس‌دهی حافظه: مستقیم و رجیستر غیرمستقیم
  • 18. حالت‌های آدرس‌دهی حافظه: پایه-اندیس و مقیاس
  • 19. دستورالعمل‌های انتقال داده: MOV
  • 20. دستورالعمل‌های انتقال داده: PUSH و POP
  • 21. دستورالعمل‌های انتقال داده: XCHG و LEA
  • 22. دستورالعمل‌های محاسباتی: ADD و SUB
  • 23. دستورالعمل‌های محاسباتی: INC، DEC، NEG
  • 24. دستورالعمل‌های ضرب و تقسیم بدون علامت: MUL، DIV
  • 25. دستورالعمل‌های ضرب و تقسیم علامت‌دار: IMUL، IDIV
  • 26. دستورالعمل‌های منطقی: AND، OR، XOR، NOT
  • 27. دستورالعمل‌های شیفت و چرخش بیتی
  • 28. دستورالعمل‌های دستکاری بیت
  • 29. نمایش کاراکترها: استاندارد ASCII
  • 30. تعریف داده‌ها با DB، DW، DD، DQ
  • 31. جزئیات رجیستر پرچم‌ها: CF, ZF, SF, OF
  • 32. دستورالعمل‌های مقایسه‌ای: CMP و TEST
  • 33. پرش‌های بدون شرط: JMP
  • 34. پرش‌های شرطی: JZ، JNZ
  • 35. پرش‌های شرطی: JC، JNC، JO، JNO
  • 36. پرش‌های شرطی برای اعداد بدون علامت: JA، JBE
  • 37. پرش‌های شرطی برای اعداد بدون علامت: JG، JLE
  • 38. پرش‌های شرطی برای اعداد علامت‌دار: JL، JGE
  • 39. پیاده‌سازی ساختارهای شرطی IF-THEN-ELSE
  • 40. پیاده‌سازی حلقه‌ها: دستور LOOP
  • 41. پیاده‌سازی حلقه‌ها با پرش‌های شرطی
  • 42. حلقه‌های تو در تو
  • 43. مقدمه‌ای بر رویه‌ها (Procedures) و زیرروال‌ها
  • 44. دستورالعمل‌های CALL و RET
  • 45. پشته (Stack): اصول و کاربردها
  • 46. ذخیره و بازیابی رجیسترها بر روی پشته
  • 47. انتقال پارامترها: از طریق رجیسترها
  • 48. انتقال پارامترها: از طریق پشته
  • 49. بازگرداندن مقادیر از رویه‌ها
  • 50. متغیرهای محلی بر روی پشته
  • 51. فریم‌های پشته و اشاره‌گر پایه (EBP/RBP)
  • 52. نمونه‌سازی رویه و قراردادهای فراخوانی (Calling Conventions)
  • 53. رویه‌های خارجی و کتابخانه‌ها
  • 54. رویه‌های بازگشتی (Recursion)
  • 55. ساخت یک کتابخانه ساده از رویه‌ها
  • 56. تعریف و دسترسی به آرایه‌ها
  • 57. آرایه‌های چند بعدی
  • 58. مبانی نمایش و دستکاری رشته‌ها
  • 59. دستورالعمل‌های رشته‌ای: MOVSB/W/D و LODSB/W/D
  • 60. دستورالعمل‌های رشته‌ای: STOSB/W/D و CMPSB/W/D
  • 61. دستورالعمل‌های رشته‌ای: SCASB/W/D
  • 62. استفاده از پیشوند REP با دستورالعمل‌های رشته‌ای
  • 63. تعریف و استفاده از ساختارها (STRUCT)
  • 64. تعریف و استفاده از اجتماع‌ها (UNION)
  • 65. مفهوم اشاره‌گرها (Pointers) در اسمبلی
  • 66. مفاهیم اولیه تخصیص حافظه دینامیک (Heap)
  • 67. رابط بین اسمبلی و زبان C/C++: فراخوانی اسمبلی از C/C++
  • 68. رابط بین اسمبلی و زبان C/C++: فراخوانی C/C++ از اسمبلی
  • 69. ترکیب کد اسمبلی با زبان‌های سطح بالا
  • 70. مفاهیم اولیه حفاظت از حافظه و حافظه مجازی
  • 71. ورودی/خروجی کنسول: خواندن کاراکتر از صفحه کلید
  • 72. ورودی/خروجی کنسول: نمایش کاراکتر بر روی صفحه
  • 73. تبدیل بین ASCII و مقادیر عددی
  • 74. مفاهیم اولیه ورودی/خروجی فایل
  • 75. ورودی/خروجی فایل: باز کردن و بستن فایل‌ها
  • 76. ورودی/خروجی فایل: خواندن از فایل‌ها
  • 77. ورودی/خروجی فایل: نوشتن در فایل‌ها
  • 78. مقدمه‌ای بر فراخوانی‌های سیستمی (System Calls)
  • 79. فراخوانی‌های سیستمی در لینوکس (مثلاً INT 0x80 یا syscall)
  • 80. فراخوانی‌های سیستمی در ویندوز (مثلاً kernel32.lib)
  • 81. ماکروها: تعریف و کاربردهای اساسی
  • 82. ماکروها با پارامترها
  • 83. اسمبل کردن شرطی (Conditional Assembly)
  • 84. مقدمه‌ای بر واحد ممیز شناور (FPU)
  • 85. دستورالعمل‌های FPU: بارگذاری و ذخیره اعداد ممیز شناور
  • 86. دستورالعمل‌های FPU: عملیات محاسباتی ممیز شناور
  • 87. مقدمه‌ای بر SSE/AVX (دستورالعمل‌های SIMD)
  • 88. دیباگ کردن برنامه‌های اسمبلی: ابزارها و تکنیک‌ها
  • 89. پروفایلینگ و تکنیک‌های بهینه‌سازی کد
  • 90. مقدمه‌ای بر وقفه‌ها (Interrupts) و مدیریت استثناها (Exceptions)
  • 91. مرور مفاهیم اصلی و جمع‌بندی
  • 92. طراحی برنامه اسمبلی: بهترین شیوه‌ها
  • 93. توسعه یک ابزار ساده خط فرمان (مثلاً یک ماشین حساب)
  • 94. کار با چندین فایل منبع و لینک کردن آنها
  • 95. کاربرد اسمبلی برای بخش‌های حساس به کارایی
  • 96. مفاهیم اولیه مهندسی معکوس (خواندن دیس‌اسمبلی)
  • 97. ملاحظات امنیتی در برنامه‌نویسی اسمبلی
  • 98. مقدمه‌ای بر فرآیند بوت‌شدن (Bootstrapping)
  • 99. روندهای آینده و معماری‌های پیشرفته (بررسی اجمالی)
  • 100. پروژه نهایی: ساخت یک جزء کوچک سیستمی
دوره جامع مبانی برنامه‌نویسی به زبان اسمبلی: از سخت‌افزار تا اجرای کد

دوره جامع مبانی برنامه‌نویسی به زبان اسمبلی: از سخت‌افزار تا اجرای کد

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

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

دوره "مبانی برنامه‌نویسی به زبان اسمبلی" با الهام از اصول بنیادین و کلاسیک کتاب مرجع "Fundamentals of Assembly Language Programming"، طراحی شده است تا شما را از یک کاربر صرف کامپیوتر به یک معمار دیجیتال تبدیل کند. ما در این سفر، مفاهیم تئوری و پیچیده را به پروژه‌های عملی و قابل درک تبدیل می‌کنیم. این دوره فقط آموزش دستورات اسمبلی نیست؛ بلکه یک ماجراجویی برای درک فلسفه پشت محاسبات مدرن است. شما یاد می‌گیرید که چگونه با پردازنده مستقیماً صحبت کنید، حافظه را مدیریت نمایید و کدهایی بنویسید که از نظر سرعت و بهینگی بی‌رقیب هستند.

درباره دوره: فراتر از تئوری، ورود به دنیای عمل

این دوره یک بازخوانی صرف از کتاب‌های مرجع نیست. ما با الهام از ساختار منسجم و پایه‌ای کتاب "Fundamentals of Assembly Language Programming"، یک مسیر یادگیری مدرن و کاملاً عملی ایجاد کرده‌ایم. در اینجا، شما با معماری پردازنده‌های x86 (که در اکثر کامپیوترهای شخصی امروزی استفاده می‌شود) آشنا می‌شوید و گام به گام یاد می‌گیرید که چگونه دستورات خود را بنویسید، کامپایل کنید و بر روی یک سیستم‌عامل واقعی (لینوکس) اجرا نمایید. تمرکز ما بر این است که شما نه تنها "چه چیزی" را یاد بگیرید، بلکه "چرا" و "چگونه" ی هر مفهوم را نیز عمیقاً درک کنید. از کار با رجیسترها و حافظه گرفته تا فراخوانی توابع سیستمی و ارتباط با کدهای سطح بالا، همه چیز به صورت پروژه-محور آموزش داده می‌شود.

موضوعات کلیدی که خواهید آموخت:

  • معماری کامپیوتر و پردازنده (CPU): آشنایی با اجزای داخلی CPU، رجیسترها، واحد محاسبه و منطق (ALU) و چرخه اجرای دستورالعمل.
  • سیستم‌های عددی و نمایش داده‌ها: تسلط کامل بر مبنای دو (Binary)، هگزادسیمال (Hexadecimal) و نحوه نمایش اعداد و کاراکترها در حافظه.
  • مجموعه دستورات (Instruction Set): یادگیری دستورات اساسی برای جابجایی داده، محاسبات ریاضی، عملیات منطقی و کنترل جریان برنامه.
  • مدیریت حافظه و پشته (Stack): درک عمیق نحوه عملکرد پشته، فراخوانی توابع، ارسال پارامترها و مدیریت متغیرهای محلی.
  • برنامه‌نویسی ماژولار: نوشتن توابع (Procedures) قابل استفاده مجدد و ساخت برنامه‌های ساختاریافته.
  • فراخوانی‌های سیستمی (System Calls): تعامل مستقیم با هسته سیستم‌عامل برای انجام عملیاتی مانند خواندن و نوشتن فایل و ورودی/خروجی.
  • ارتباط با زبان‌های سطح بالا: یادگیری نحوه فراخوانی کدهای اسمبلی از زبان C و بالعکس، برای بهینه‌سازی بخش‌های حساس برنامه.
  • دیباگ و تحلیل کد: استفاده از ابزارهایی مانند GDB برای خطایابی و تحلیل گام به گام اجرای برنامه‌های اسمبلی.

این دوره برای چه کسانی مناسب است؟

  • دانشجویان علوم کامپیوتر و مهندسی نرم‌افزار: که می‌خواهند درک خود را از دروس معماری کامپیوتر و سیستم‌عامل عمیق‌تر کنند.
  • برنامه‌نویسان سیستم‌های نهفته (Embedded Systems): که نیاز به کنترل مستقیم سخت‌افزار و نوشتن کدهای بهینه برای میکروکنترلرها دارند.
  • متخصصان امنیت و محققان بدافزار: که برای مهندسی معکوس، تحلیل بدافزار و کشف آسیب‌پذیری‌ها به دانش اسمبلی نیازمندند.
  • توسعه‌دهندگان بازی و موتورهای گرافیکی: که برای دستیابی به حداکثر کارایی، بخش‌های کلیدی کد خود را به زبان اسمبلی می‌نویسند.
  • برنامه‌نویسان کنجکاو و علاقه‌مند: هر کسی که می‌خواهد از یک "کدنویس" به یک "مهندس نرم‌افزار" واقعی تبدیل شود و بداند در پشت پرده انتزاع زبان‌های سطح بالا چه می‌گذرد.

چرا باید در این دوره شرکت کنید؟

در دنیایی که ابزارها و فریمورک‌های سطح بالا روز به روز بیشتر می‌شوند، دانستن اصول بنیادی شما را از دیگران متمایز می‌کند. زبان اسمبلی، زبان مادری کامپیوتر است و یادگیری آن مزایای بی‌نظیری دارد:

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

سرفصل‌های جامع دوره (بیش از 100 درس عملی)

این دوره با پوشش بیش از ۱۰۰ سرفصل دقیق و کاربردی، شما را از سطح صفر به نقطه‌ای می‌رساند که بتوانید برنامه‌های اسمبلی پیچیده را بنویسید و تحلیل کنید.

بخش ۱: مبانی و مفاهیم پایه

  • ۱. زبان اسمبلی چیست و چرا اهمیت دارد؟
  • ۲. تاریخچه مختصر زبان‌های برنامه‌نویسی
  • ۳. تفاوت زبان‌های سطح بالا، میانی و پایین
  • ۴. معرفی معماری Von Neumann
  • ۵. آشنایی با چرخه Fetch-Decode-Execute
  • ۶. سیستم‌های عددی: باینری و دهدهی
  • ۷. سیستم عددی هگزادسیمال و کاربرد آن
  • ۸. تبدیل بین سیستم‌های عددی مختلف
  • ۹. نمایش اعداد منفی: مکمل دو (Two's Complement)
  • ۱۰. آشنایی با کاراکترهای ASCII

بخش ۲: معماری پردازنده x86

  • ۱۱. معرفی اجزای اصلی CPU: ALU, CU, Registers
  • ۱۲. رجیسترهای عمومی (General-Purpose): EAX, EBX, ECX, EDX
  • ۱۳. رجیسترهای اشاره‌گر و شاخص: ESI, EDI, EBP, ESP
  • ۱۴. رجیستر شمارنده برنامه (EIP)
  • ۱۵. رجیستر فلگ‌ها (EFLAGS) و پرچم‌های مهم (Zero, Carry, Sign)
  • ۱۶. مفهوم حافظه (RAM) و آدرس‌دهی
  • ۱۷. واحدهای حافظه: بیت، بایت، کلمه (Word)، کلمه دوتایی (DWORD)
  • ۱۸. مفهوم Endianness: Little-Endian vs. Big-Endian
  • ۱۹. نصب و راه‌اندازی محیط توسعه (NASM, GCC, GDB)
  • ۲۰. ساختار یک برنامه ساده اسمبلی (بخش‌های .data, .bss, .text)

بخش ۳: دستورات جابجایی داده و محاسبات

  • ۲۱. دستور MOV: کپی کردن داده
  • ۲۲. انواع عملوندها: رجیستر، حافظه، مقدار ثابت
  • ۲۳. دستور XCHG: تعویض مقادیر
  • ۲۴. دستور LEA: بارگذاری آدرس موثر
  • ۲۵. دستورات ریاضی: ADD و SUB
  • ۲۶. دستورات INC و DEC برای افزایش و کاهش
  • ۲۷. دستورات ضرب: MUL و IMUL
  • ۲۸. دستورات تقسیم: DIV و IDIV
  • ۲۹. تاثیر عملیات ریاضی بر رجیستر فلگ‌ها
  • ۳۰. پروژه عملی: ماشین حساب ساده

بخش ۴: عملیات منطقی و بیتی

  • ۳۱. عملیات منطقی: AND, OR, XOR
  • ۳۲. دستور NOT: مکمل یک
  • ۳۳. دستور TEST و تاثیر آن بر فلگ‌ها
  • ۳۴. دستورات شیفت منطقی: SHL و SHR
  • ۳۵. دستورات شیفت حسابی: SAL و SAR
  • ۳۶. دستورات چرخش: ROL و ROR
  • ۳۷. کاربرد عملیات بیتی در ماسک‌گذاری (Masking)
  • ۳۸. بررسی و تنظیم بیت‌های خاص یک بایت
  • ۳۹. پروژه: رمزنگاری ساده با XOR
  • ۴۰. بهینه‌سازی ضرب و تقسیم با دستورات شیفت

بخش ۵: کنترل جریان برنامه

  • ۴۱. دستور CMP: مقایسه دو عملوند
  • ۴۲. پرش بدون شرط: JMP
  • ۴۳. پرش‌های شرطی بر اساس برابری: JE, JNE
  • ۴۴. پرش‌های شرطی برای اعداد بدون علامت: JA, JB, JAE, JBE
  • ۴۵. پرش‌های شرطی برای اعداد علامت‌دار: JG, JL, JGE, JLE
  • ۴۶. پیاده‌سازی ساختارهای if-else در اسمبلی
  • ۴۷. ساخت حلقه‌های تکرار با JMP و دستورات شرطی
  • ۴۸. دستور LOOP برای ساخت حلقه‌های شمارشی
  • ۴۹. جدول پرش (Jump Table) برای پیاده‌سازی switch-case
  • ۵۰. پروژه: یافتن بزرگترین عدد در یک آرایه

بخش ۶: پشته و رویه‌ها (Procedures)

  • ۵۱. پشته (Stack) چیست و چگونه کار می‌کند؟
  • ۵۲. دستورات PUSH و POP
  • ۵۳. رجیسترهای ESP و EBP و مدیریت پشته
  • ۵۴. تعریف رویه (Procedure) با PROC و ENDP (در MASM) یا برچسب (در NASM)
  • ۵۵. دستورات CALL و RET
  • ۵۶. مفهوم قاب پشته (Stack Frame)
  • ۵۷. ارسال پارامتر به رویه‌ها از طریق پشته
  • ۵۸. ایجاد متغیرهای محلی روی پشته
  • ۵۹. بازگشت مقدار از رویه‌ها (از طریق رجیستر EAX)
  • ۶۰. پروژه: پیاده‌سازی تابع فاکتوریل به صورت بازگشتی

بخش ۷: کار با آرایه‌ها و رشته‌ها

  • ۶۱. تعریف آرایه در بخش .data
  • ۶۲. دسترسی به عناصر آرایه با آدرس‌دهی
  • ۶۳. حالت‌های مختلف آدرس‌دهی حافظه (Direct, Indirect, Indexed)
  • ۶۴. پیمایش آرایه با استفاده از حلقه‌ها و اشاره‌گرها
  • ۶۵. تعریف رشته‌های Null-Terminated
  • ۶۶. محاسبه طول یک رشته
  • ۶۷. کپی کردن یک رشته در رشته دیگر
  • ۶۸. مقایسه دو رشته
  • ۶۹. دستورات رشته‌ای: MOVSB, LODSB, STOSB
  • ۷۰. پروژه: معکوس کردن یک رشته

بخش ۸: فراخوانی‌های سیستمی (System Calls)

  • ۷۱. وقفه (Interrupt) چیست؟
  • ۷۲. آشنایی با فراخوانی سیستمی در لینوکس (Syscalls)
  • ۷۳. استفاده از وقفه 0x80 برای فراخوانی هسته
  • ۷۴. فراخوانی سیستمی sys_exit: خروج از برنامه
  • ۷۵. فراخوانی سیستمی sys_write: نوشتن در خروجی استاندارد (کنسول)
  • ۷۶. فراخوانی سیستمی sys_read: خواندن از ورودی استاندارد (کیبورد)
  • ۷۷. چاپ اعداد در کنسول (تبدیل باینری به ASCII)
  • ۷۸. دریافت ورودی عددی از کاربر (تبدیل ASCII به باینری)
  • ۷۹. دستور syscall (برای معماری ۶۴ بیتی)
  • ۸۰. پروژه: برنامه "سلام دنیا" با استفاده از فراخوانی سیستمی

بخش ۹: ارتباط با زبان C

  • ۸۱. چرا به ارتباط اسمبلی و C نیاز داریم؟
  • ۸۲. قراردادهای فراخوانی (Calling Conventions): cdecl
  • ۸۳. مدیریت پشته در فراخوانی cdecl
  • ۸۴. فراخوانی یک تابع C از درون کد اسمبلی
  • ۸۵. استفاده از توابع کتابخانه استاندارد C (مانند printf)
  • ۸۶. نوشتن یک تابع به زبان اسمبلی و فراخوانی آن از C
  • ۸۷. ارسال پارامتر از C به اسمبلی
  • ۸۸. بازگرداندن مقدار از اسمبلی به C
  • ۸۹. مفهوم Name Mangling و استفاده از `extern "C"`
  • ۹۰. پروژه: نوشتن یک تابع بهینه‌سازی شده در اسمبلی برای یک برنامه C

بخش ۱۰: مباحث پیشرفته و ابزارها

  • ۹۱. آشنایی با ماکروها (Macros) در NASM
  • ۹۲. تفاوت ماکرو و رویه
  • ۹۳. دستورات پیش‌پردازنده: %define, %ifdef
  • ۹۴. مقدمه‌ای بر دیباگ کردن با GDB
  • ۹۵. تنظیم Breakpoint و اجرای گام به گام کد
  • ۹۶. مشاهده مقادیر رجیسترها و حافظه در GDB
  • ۹۷. تحلیل فایل‌های اجرایی با objdump
  • ۹۸. مقدمه‌ای بر برنامه‌نویسی ۶۴ بیتی (x86-64)
  • ۹۹. تفاوت رجیسترها و آدرس‌دهی در حالت ۶۴ بیتی
  • ۱۰۰. مسیر یادگیری آینده: SIMD, FPU و مهندسی معکوس
SMART LEARNING PLATFORM
از مطالعه تا یادگیری ماندگار
فراتر از یک مجموعه فلش‌کارت؛ تجربه‌ای تعاملی برای یادگیری، تمرین، مرور هوشمند و مشاهده مسیر پیشرفت شما، همراه با امکان دریافت گواهی پایان دوره در دوره‌های واجد شرایط.
مرور فاصله‌دار آمار یادگیری گواهی دوزبانه
یادگیری را به یک مسیر قابل پیگیری تبدیل کنید
با ورود به سامانه آموزشی، محتوای دوره را به‌صورت مرحله‌ای دنبال کنید، فلش‌کارت‌ها را مرور کنید، دانش خود را با پرسش‌ها و آزمون‌ها بسنجید و روند پیشرفتتان را در طول مسیر ببینید.
⟳
مرور فاصله‌دار هوشمند
با مرور زمان‌دار، کارت‌های تازه و کارت‌های سررسیدشده را بر اساس برنامه مرور دنبال کنید. ارزیابی پاسخ‌ها به زمان‌بندی مرورهای بعدی کمک می‌کند تا تمرین متناسب‌تری داشته باشید.
◉
مشاهده مسیر پیشرفت
میزان مشاهده فلش‌کارت‌ها، فعالیت‌های مرور، عملکرد آزمون‌ها و آمار یادگیری را بررسی کنید و تصویر روشن‌تری از مسیر آموزشی خود داشته باشید.
▤
یادگیری مرحله‌به‌مرحله
فصل‌ها و بخش‌های آموزشی را به ترتیب دنبال کنید، مطالب دیده‌نشده را پیدا کنید و بدون سردرگمی به ادامه مسیر برگردید.
✓
تمرین و سنجش آموخته‌ها
با نکته‌های آموزشی، پرسش و پاسخ، کوییزها و آزمون‌های پایان فصل، دانسته‌های خود را تمرین کنید و بخش‌هایی را که به توجه بیشتری نیاز دارند بشناسید.
SMART REVIEW
هر بار، مرور هدفمندتر
لازم نیست هر روز از ابتدا درباره اینکه چه چیزی را مرور کنید تصمیم بگیرید. سامانه، صف مرور روزانه را بر اساس کارت‌های تازه و موعد مرور کارت‌ها آماده می‌کند. شما پاسخ را ارزیابی می‌کنید و برنامه مرور با توجه به آن تنظیم می‌شود.
دوباره
برای کارت‌هایی که به تمرین زودتر نیاز دارند.
سخت
برای پاسخ‌هایی که با دشواری به یاد آمده‌اند.
خوب
برای پاسخ‌هایی که به‌درستی به یاد آورده‌اید.
آسان
برای کارت‌هایی که پاسخ آن‌ها را به‌آسانی می‌دانید.
برنامه مرور بر اساس ارزیابی شما تنظیم می‌شود؛ مرور منظم می‌تواند به تثبیت آموخته‌ها کمک کند، اما به‌تنهایی تضمین‌کننده تسلط کامل نیست.
محتوا را به شیوه‌های مختلف تمرین کنید
ساختار دوره‌ها متناسب با موضوع آموزشی طراحی شده است و ممکن است انواع مختلفی از محتوا را در بر بگیرد.
نکته‌های ساده
برای مرور سریع مفاهیم اصلی و نکات کلیدی.
نکته‌های رسمی
برای تمرین تعاریف، اصطلاحات و بیان دقیق علمی.
کوییز
برای سنجش درک مطلب و بررسی گزینه صحیح.
پرسش و پاسخ
برای تمرین یادآوری و سنجش میزان تسلط بر مطالب.
محتوای هر دوره بر اساس ساختار و امکانات فعال همان دوره ارائه می‌شود.
LEARN ANYWHERE
همراه شما روی مرورگر
برای استفاده از نسخه تحت وب، کافی است با حساب کاربری خود وارد سامانه شوید. بدون نیاز به نصب یک برنامه اختصاصی، می‌توانید از مرورگر سازگار روی گوشی، تبلت یا رایانه به دوره‌های در دسترس خود مراجعه کنید.
گوشی هوشمند
برای مطالعه در زمان‌های کوتاه
تبلت و لپ‌تاپ
برای مطالعه و مرور راحت‌تر
حساب کاربری شخصی
برای دسترسی به دوره‌های مجاز شما
COURSE COMPLETION CERTIFICATE
گواهی پایان دوره؛ ثبت دستاورد شما
در دوره‌هایی که امکان دریافت گواهی برای آن‌ها فعال است، می‌توانید پس از تکمیل شرایط آموزشی، درخواست گواهی پایان دوره ثبت کنید.
شرایط درخواست گواهی
✓ داشتن دسترسی دارای قابلیت گواهی برای دوره مربوطه.
✓ تکمیل اطلاعات لازم در پروفایل، شامل کد ملی معتبر، عکس پرسنلی و نام و نام خانوادگی انگلیسی.
✓ مشاهده تمام فلش‌کارت‌های فعال دوره.
✓ قبولی در آزمون‌های پایان فصل، در صورت وجود آزمون برای فصل‌ها.
فارسی و انگلیسی
پس از تأیید و انتشار، نسخه‌های فارسی و انگلیسی گواهی در دسترس قرار می‌گیرند.
استعلام آنلاین
گواهی منتشرشده دارای QR Code و لینک اختصاصی برای بررسی آنلاین اعتبار آن است.
دانلود و چاپ
پس از انتشار گواهی، امکان دریافت نسخه PDF فارسی و انگلیسی و چاپ آن فراهم است.
توجه: ثبت درخواست به معنای صدور قطعی نیست. درخواست گواهی پس از بررسی و تأیید ادمین منتشر می‌شود. این گواهی، گواهی پایان دوره آموزشی است و به‌خودی‌خود معادل مدرک دانشگاهی یا مدرک رسمی مورد تأیید نهادهای دولتی نیست.
یادگیری را شروع کنید؛ پیشرفت را دنبال کنید
با تمرین منظم، مرور هدفمند و پیگیری مسیر آموزشی خود، قدم‌به‌قدم دانش و مهارت‌هایتان را گسترش دهید.
هر کارت، یک قدم به جلو
امکانات محتوایی، مرور و گواهی بر اساس سطح دسترسی و تنظیمات هر دوره متفاوت است.
نگاهی به محیط سامانه

یادگیری هوشمند، قدم‌به‌قدم

با محیط سامانه آموزشی آشنا شوید و نمونه‌هایی از فضای یادگیری، فلش‌کارت‌ها و ابزارهای مرور و تمرین را مشاهده کنید.

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

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

تگ‌ها: Assembly Language assembly tutorial Assembly x86 Beginner Code Execution Computer Architecture Fundamentals of Assembly Language Programming Hardware System Programming آموزش اسمبلی اجرای کد اسمبلی اسمبلی x86 برنامه‌نویسی سیستم زبان اسمبلی سخت‌افزار مبتدی معماری کامپیوتر

نظرات

هنوز نظری ثبت نشده است.

وارد شوید تا نظر ثبت کنید.