اپلیکیشن اندرویدی فلشکارت آموزشی راهنمای جامع برنامهنویسی 80386/80486 با رویکرد Microsoft: از مقدمات تا بهینهسازی
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره راهنمای جامع برنامهنویسی 80386/80486 با رویکرد Microsoft: از مقدمات تا بهینهسازی
موضوع کلی: معماری و برنامهنویسی سطح پایین کامپیوتر
موضوع میانی: برنامهنویسی اسمبلی برای پردازندههای 80386 و 80486
📋 سرفصلهای دوره
- 1. مقدمهای بر معماری کامپیوتر و زبان اسمبلی
- 2. چرا برنامهنویسی اسمبلی برای 80386/80486؟
- 3. مروری بر سیر تکاملی پردازندههای X86
- 4. محیط توسعه: اسمبلر، لینکر، دیباگر
- 5. اولین برنامه اسمبلی: Hello World در حالت حقیقی (Real Mode)
- 6. رجیسترهای عمومی (General Purpose Registers): EAX, EBX, ECX, EDX
- 7. رجیسترهای اشارهگر و اندیس (Pointer and Index Registers): ESI, EDI, EBP, ESP
- 8. رجیسترهای سگمنت (Segment Registers): CS, DS, SS, ES, FS, GS
- 9. رجیستر پرچمها (EFLAGS) و بیتهای وضعیت
- 10. رجیستر اشارهگر دستورالعمل (EIP)
- 11. انواع دادهها و مقادیر فوری (Immediate Values)
- 12. سازماندهی حافظه: آدرسهای منطقی، خطی و فیزیکی
- 13. حالتهای عملیاتی پردازنده: Real Mode, Protected Mode, Virtual 8086 Mode
- 14. ساختار حافظه و نواحی RAM/ROM
- 15. مد آدرسدهی (Addressing Modes) در 80386/80486
- 16. MOV: جابجایی عمومی دادهها
- 17. PUSH و POP: عملیات پشته (Stack)
- 18. LEA: بارگذاری آدرس موثر (Load Effective Address)
- 19. XCHG: تعویض محتوای رجیستر/حافظه
- 20. CWD, CDQ: توسعه علامت (Sign Extension)
- 21. MOVSX, MOVZX: توسعه علامت و صفر برای دادهها
- 22. BSWAP: معکوس کردن ترتیب بایتها
- 23. LODS, STOS, MOVS: دستورات رشتهای (String Operations)
- 24. IN و OUT: ورودی/خروجی پورت (Port I/O)
- 25. ADD, ADC: جمع و جمع با رقم نقلی (Carry)
- 26. SUB, SBB: تفریق و تفریق با رقم قرضی (Borrow)
- 27. INC, DEC: افزایش و کاهش
- 28. NEG: منفی کردن (Negation)
- 29. CMP: مقایسه
- 30. MUL, IMUL: ضرب (بدون علامت و علامتدار)
- 31. DIV, IDIV: تقسیم (بدون علامت و علامتدار)
- 32. AND, OR, XOR: عملیات منطقی بیتی
- 33. NOT: NOT بیتی
- 34. TEST: تست بیتی
- 35. SHL, SHR, SAL, SAR: شیفت بیتی (Logical and Arithmetic Shifts)
- 36. ROL, ROR, RCL, RCR: چرخش بیتی (Rotates)
- 37. BT, BTC, BTR, BTS: تست و دستکاری بیتها
- 38. DAA, DAS: تنظیم اعشاری (Decimal Adjust)
- 39. AAA, AAS, AAM, AAD: تنظیم ASCII
- 40. JMP: پرش بدون قید و شرط
- 41. Jcc: پرشهای شرطی (Conditional Jumps)
- 42. CALL و RET: فراخوانی و بازگشت از زیرروالها
- 43. LOOP, LOOPE, LOOPNE: حلقهها
- 44. فراخوانیهای داخل سگمنت و بین سگمنت (Near and Far Calls/Jumps)
- 45. پیادهسازی ساختارهای کنترلی سطح بالا (IF/ELSE, WHILE) در اسمبلی
- 46. استفاده از دستورات SETcc
- 47. آشنایی با Protected Mode و اهمیت آن
- 48. جدول توصیفگر جهانی (GDT) و توصیفگرها (Descriptors)
- 49. توصیفگرهای سگمنت: کد، داده، پشته
- 50. انتخابگرهای سگمنت (Segment Selectors) و ساختار آنها
- 51. جدول توصیفگر محلی (LDT)
- 52. سطوح امتیاز (Privilege Levels) و حلقههای حفاظتی (Rings)
- 53. دروازههای فراخوانی (Call Gates) برای تغییر سطح امتیاز
- 54. فعالسازی Protected Mode
- 55. مقدمهای بر Paging و ترجمه آدرسها
- 56. ساختار دایرکتوری صفحه (Page Directory)
- 57. ساختار جدول صفحه (Page Table)
- 58. ترجمه آدرس خطی به فیزیکی با Paging
- 59. رجیسترهای کنترلی (CR0, CR3) برای Paging
- 60. مدیریت حافظه مجازی و نقش Paging
- 61. حفاظت حافظه (Memory Protection) در Protected Mode
- 62. آدرسدهی 32 بیتی در Protected Mode
- 63. تخصیص و آزادسازی حافظه در Protected Mode (مفاهیم)
- 64. تفاوت وقفهها (Interrupts) و استثناها (Exceptions)
- 65. جدول توصیفگر وقفه (IDT)
- 66. توصیفگرهای گیت وقفه و تله (Interrupt Gate, Trap Gate)
- 67. بردارهای وقفه و انواع آنها
- 68. وقفههای سختافزاری (IRQs)
- 69. وقفههای نرمافزاری (INT n) و استفاده از آنها
- 70. نوشتن روالهای سرویس وقفه (ISRs) سفارشی
- 71. مدیریت استثناها (مانند تقسیم بر صفر، خطای حفاظت عمومی)
- 72. اولویتبندی وقفهها
- 73. وقفههای تودرتو (Nested Interrupts)
- 74. دستورات STI, CLI, IRET, IRETD
- 75. سگمنت وضعیت وظیفه (TSS): ساختار و کاربرد
- 76. دروازههای وظیفه (Task Gates)
- 77. مکانیزم سوییچ وظیفه (Task Switching)
- 78. چندوظیفگی (Multitasking) در Protected Mode
- 79. رجیسترهای کنترلی (CR0) برای مدیریت وظایف
- 80. معرفی واحد ممیز شناور (FPU) یا 80387/80486DX
- 81. رجیسترهای FPU و مدل پشتهای (Stack Model)
- 82. انواع دادههای FPU (ممیز شناور تک، دو، و ده برابر دقت)
- 83. دستورات پایه FPU: بارگذاری، ذخیره، انتقال (FLD, FST, FADD, FMUL, FDIV)
- 84. دستورات مقایسه و کنترل FPU
- 85. FPU: انجام محاسبات پیچیده ریاضی
- 86. افزایش کارایی در 80486: Cache On-Chip و Pipelining
- 87. مدیریت Cache: سیاستهای Write-Through و Write-Back
- 88. دستورات کنترل Cache (مانند INVD, WBINVD)
- 89. بهینهسازی کد برای عملکرد بهتر روی 80386/80486
- 90. تشخیص نوع پردازنده (CPU ID)
- 91. استفاده از ویژگیهای خاص 80486 برای حداکثر کارایی
- 92. فراخوانی کدهای اسمبلی از C/C++
- 93. فراخوانی توابع C/C++ از کد اسمبلی
- 94. قراردادهای ارسال پارامتر (Calling Conventions)
- 95. لینک کردن ماژولهای اسمبلی با کدهای C/C++
- 96. انتقال داده بین اسمبلی و زبانهای سطح بالا
- 97. استفاده از دیباگرهای پیشرفته (مانند SoftICE، OllyDbg، WinDbg - مفاهیم)
- 98. نقاط توقف (Breakpoints) و ردیابی (Tracing)
- 99. تحلیل حافظه و رجیسترها در حین عیبیابی
- 100. نکات و ترفندهای بهینهسازی و عیبیابی پیشرفته
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.